Jump landung

  • GM 8
  • Jump landung

    Hi,
    ich hab ein kleines Problem undzwar bei der Landung meines Spielers auf dem Ground Objekt, nachdem ich Gesprungen bin, bleibt er kurz vor dem Boden in der luft stehen und gleitet danach dann erst zum Boden.
    Ansich eigentlich nicht so schlimm nur das Nervt nach ner Zeit und beim Daigonalen Jumpen erst recht weil er dann sozusagen erst noch über den Boden nach Rechts gleitet...
    Weiß jemand wie man das fixen kann?
    Imagine taking your usual two century long nap minding your own business when suddenly some cunt wakes you up.
    You tell him to f*ck off of course but just when you finally managed to fall asleep again the same asshole comes knocking again. I'd attack that dick too.
  • DragonXZ schrieb:

    Hi,
    ich hab ein kleines Problem undzwar bei der Landung meines Spielers auf dem Ground Objekt, nachdem ich Gesprungen bin, bleibt er kurz vor dem Boden in der luft stehen und gleitet danach dann erst zum Boden.
    Ansich eigentlich nicht so schlimm nur das Nervt nach ner Zeit und beim Daigonalen Jumpen erst recht weil er dann sozusagen erst noch über den Boden nach Rechts gleitet...
    Weiß jemand wie man das fixen kann?
    Servus, DragonXZ.

    Wenn ich dein Problem richtig verstanden habe, solte folgendes im Kollisions-Event mit den Boden helfen:

    GML-Quellcode

    1. if vspeed > 0 && !place_free(x,y + vspeed)
    2. {
    3. move_contact_solid(direction,vspeed)
    4. }


    MfG Marvin159
  • Ja, sowas ähnliches hab ich auch schon probiert nur leider funktioniert es nicht...

    Weiß nicht ob hilfs aber vieleicht steckt der fehler ja irgentwo anders drin:

    Im step Event(Jump befehl)

    GML-Quellcode

    1. if(keyboard_check_pressed(vk_up) && jump_block=false)
    2. { if (earth==0)
    3. {
    4. sprite_index = Player_jump1;
    5. vspeed=-11;
    6. block=true;
    7. atck_block=true;
    8. earth=1;
    9. }
    10. else
    11. {
    12. if (earth==1)
    13. {
    14. earth=2;
    15. }
    16. }
    17. }
    Alles anzeigen


    Animation end Event:

    GML-Quellcode

    1. //Jump Landung
    2. if !place_free(x,y+1)
    3. if sprite_index = Player_jump1
    4. {
    5. sprite_index = Player_stand
    6. hspeed=0;
    7. block=false;
    8. atck_block=false;
    9. }
    Alles anzeigen


    Collisions Event mit dem Boden:

    GML-Quellcode

    1. earth=0;
    2. vspeed=0;
    3. //dont get stuck
    4. {
    5. var_dir = point_direction(x,y,other.x,other.y)
    6. x = x+lengthdir_x(-0,var_dir)
    7. y = y+lengthdir_y(-0,var_dir)
    8. if vspeed > 0 && !place_free(x,y + vspeed)
    9. {
    10. move_contact_solid(direction,vspeed)
    11. }
    12. }
    Alles anzeigen
    Imagine taking your usual two century long nap minding your own business when suddenly some cunt wakes you up.
    You tell him to f*ck off of course but just when you finally managed to fall asleep again the same asshole comes knocking again. I'd attack that dick too.
  • Hast du "Direction" irgendwo gesetzt? Wenn nicht, wird das wahrscheinlich 0 sein, ergo checkt er ob Rechts neben deinen Objekt platz frei ist. Probiere das ganze mal mit:

    GML-Quellcode

    1. move_contact_solid(270,vspeed);


    des weiteren setzt zu vpseed am Anfang der Funktion auf 0 und überprüfst dann ob diese größer als 0 ist, was nie eintreten wird. Vspeed darf am Anfang der Funktion nicht auf 0 gesetzt werden, sonst wird das ganze nie aufgerufen werden. Wenn wir schon mal dabei sind... dieses Codesegment ergibt auch keinen Sinn:

    GML-Quellcode

    1. var_dir = point_direction(x,y,other.x,other.y)
    2. x = x+lengthdir_x(-0,var_dir)
    3. y = y+lengthdir_y(-0,var_dir)


    Du schaust wo das Objekt mit dem du Kollidierst ist, und bewegst dich dann ... 0 pixel in dessen Richtung, was dazu führt, das x und y immer gleich bleiben.
    ...
  • Danke funktioniert jetzt, hatte auch noch woanders vspeed auf 0 gesetzt.
    Und zum 2. Ja du hast recht, hatte es nach nem Bug auf -0 gesetzt, ich wusste selbst das es nix bringt aber komischerweise ging es doch, bemerkte aber erst dank dir, dass es garnicht an dieser funktion lag, ich habs rausgenommen.
    Imagine taking your usual two century long nap minding your own business when suddenly some cunt wakes you up.
    You tell him to f*ck off of course but just when you finally managed to fall asleep again the same asshole comes knocking again. I'd attack that dick too.
  • Ich hab gerade noch folgendes Problem gefunden.

    Im step event des Players habe ich das hier:

    GML-Quellcode

    1. if place_meeting(x,y+vspeed,boden1_gras) vspeed=0;

    Das verhindert dass ich nicht an ein Solides Objekt stecken bleibe wenn ich in der luft bin.

    Nur dann funktioniert dieser Code hier leider nichtmehr da vspeed ja immer auf 0 gesetzt wird.

    GML-Quellcode

    1. if vspeed > 0 && !place_free(x,y + vspeed)
    2. {
    3. move_contact_solid(270,vspeed);
    4. vspeed=0;
    5. }


    Jemand eine Idee wie man das auch anders lösen kann?
    Imagine taking your usual two century long nap minding your own business when suddenly some cunt wakes you up.
    You tell him to f*ck off of course but just when you finally managed to fall asleep again the same asshole comes knocking again. I'd attack that dick too.
  • Benutzer online 1

    1 Besucher