Item einsammeln, dann doppelsprungfähig... aber wie bekomm ich den doppelsprung so hin wie ich ihn haben will?

  • Item einsammeln, dann doppelsprungfähig... aber wie bekomm ich den doppelsprung so hin wie ich ihn haben will?

    hi leute,
    so jetzt nochmal alles editiert...
    ich möchte wie gesagt das mein player einen doppelsprung machen kann.
    es gibt aber zwei harken an der sache...

    zum einen soll der doppelsprung erst machbar sein wenn ein bestimmtes item eingesammelt wurde.
    und zum anderen soll der zweite sprung in der luft nicht ganz so hoch sein wie der erste.

    soll heißen das erste mal springt er mit vspeed-=8 z.B. und soll dann in der luft fähig sein nochmal zu springen mit einer höhe von vspeed-=4....

    ich hab folgendes geschrieben, was aber bisher nicht ganz geklappt hat. Mein problem ist das die zwei vspeeds mit einander adiert werden...

    Spoiler anzeigen

    GML-Quellcode

    1. //step
    2. if (place_meeting(x,y+1,obj_boden_par))
    3. {
    4. sprung=1;
    5. }
    6. if (keyboard_check(vk_up)) &!(place_meeting(x,y,obj_treppe)) &(sprung<2)
    7. {
    8. vspeed-=8;
    9. sprung+=1;
    10. if(doppelsprung=1)//prüft ob item eingesammelt wurde...
    11. {
    12. if(sprung<3) &(keyboard_check(vk_up))
    13. {
    14. vspeed-=4;
    15. sprung+=1;
    16. }
    17. }
    18. }
    19. //---langsamer springen bei kurzen up drücken
    20. if (keyboard_check_released(vk_up)) and (vspeed<0)
    21. {
    22. vspeed*=0.6;
    23. }
    Alles anzeigen


    GML-Quellcode

    1. //create
    2. doppelsprung=0;//---luftsprung im laufe des spiels...
    3. sprung=1;


    gruß gruen


    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Gruen ()

  • 1. Möglichkeit:
    Check einfach, ob der player einen gewissen vspeed erreicht hat (zB. 1,0,-1), und führ dann erst den 2ten jump aus.

    2. Möglichkeit:

    GML-Quellcode

    1. vspeed-=4;


    Ist nix gut!

    GML-Quellcode

    1. vspeed=-4;


    Besser =)
    Denn, "-=" heißt die Engine soll was zum jetzigen Wert hinzufügen.
    "=-" heißt, dass die Engine den Wert auf zB. 4 setzen soll.

    lg, Lev
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • endlich hat mal wer geantwortet :)

    aber leider scheint das auch nicht zu funktionieren.

    ich hab das jetzt geschrieben... mal mit vspeed-=4 und mal mit vspeed=-4

    GML-Quellcode

    1. if (keyboard_check(vk_up)) &!(place_meeting(x,y,obj_treppe)) &(sprung<2)
    2. {
    3. vspeed-=8;
    4. sprung+=1;
    5. if(doppelsprung=1)//prüft ob item eingesammelt wurde...
    6. {
    7. if(sprung<3) &(keyboard_check(vk_up)) &(vspeed<=-5)
    8. {
    9. vspeed-=4;
    10. sprung+=1;
    11. }
    12. }
    13. }
    Alles anzeigen


    leider funktioniert des nicht :S


  • Nein ich habs so gemeint:

    GML-Quellcode

    1. //step
    2. if (place_meeting(x,y+1,obj_boden_par))
    3. {
    4. sprung=1;
    5. }
    6. if (keyboard_check(vk_up)) &!(place_meeting(x,y,obj_treppe)) &(sprung<2)
    7. {
    8. vspeed=-8; //Das hier...
    9. sprung+=1;
    10. if(doppelsprung=1)//prüft ob item eingesammelt wurde...
    11. {
    12. if(sprung<3) &(keyboard_check(vk_up))
    13. {
    14. vspeed=-4; //und das hier muss verändert werden, sonst nichts.
    15. sprung+=1;
    16. }
    17. }
    18. }
    19. //---langsamer springen bei kurzen up drücken
    20. if (keyboard_check_released(vk_up)) and (vspeed<0)
    21. {
    22. vspeed*=0.6;
    23. }
    Alles anzeigen
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Benutzer online 1

    1 Besucher