Jump & Run - Springen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Jump & Run - Springen

    Ich weiß, ich weiß, gabs schon oft :shifty:

    Aber das Springen funktioniert in meinem Jump & Run einfach nicht.
    Zum Springen verwende ich ganz einfach "vspeed = -(Wert)", aber es klappt nicht...

    Also, beim Stepp Event habe ich folgendes geschrieben:

    //Gravity
    if place_free(x,y+1)
    gravity = 0.05;
    gravity_direction = 270;
    if not place_free(x,y+1)
    gravity = 0

    //Collision
    if place_meeting(x,y+1,Block)
    vspeed=0
    move_contact_solid(270,vspeed)

    Ich weiß nicht woran es noch liegen könnte. Pls Help :D
    15.04.09/ Zustand: CRACK
  • Das liegt daran, dass in deinem Code ein paar Fehler sind!
    Step Event

    GML-Quellcode

    1. if(place_free(x,y+1))
    2. {
    3. gravity_direction=270
    4. gravity=0.5 // Mit '0.05' Gravity wirds schlecht gehen!
    5. }
    6. else
    7. {
    8. gravity_direction=270
    9. gravity=0
    10. }


    Collision with 'obj_block' // oder was auch immer ^^

    GML-Quellcode

    1. if(place_meeting(x,y+1,obj_block))
    2. {
    3. move_contact_solid(direction,12) //Der Code muss vor das 'vspeed=0'
    4. vspeed=0
    5. }


    Key Press Up

    GML-Quellcode

    1. if!(place_free(x,y+1))
    2. {
    3. vspeed=-10 /oder dein wert!
    4. }


    Müsste klappen! :D
  • Danke, jetzt funktioniert das mit dem Springen! :thumbsup:

    Nur habe ich beim "move_contact_solid(direction,12)" aus der 12 eine 270 gemacht.
    Denn das mit der 12 funktionierte irgendwie nicht ?(
    Wofür steht denn die Zahl? Würde ich gerne wissen ^^
    15.04.09/ Zustand: CRACK
  • Aus der Help

    move_contact_solid(dir,maxdist) Bewegt die Instanz solange in die angegebene Richtung, bis ein Kontakt mit einer anderen "solid" Instanz erreicht wird. Wenn an der aktuellen Position keine Kollision vorliegt, wird die Instanz kurz vor der Kollision platziert. Wenn schon eine Kollision vorliegt, wird die Instanz nicht bewegt. Du kannst die maximale Bewegungsweite(maxdist) angeben (negative Werte bedeuten beliebig lange).

    ;)
  • Hi Bongo Bongo

    Hier ein Auszug aus der Hilfe:

    move_contact_solid(dir,maxdist) Bewegt die Instanz solange in die angegebene Richtung, bis ein Kontakt mit einer anderen "solid" Instanz erreicht wird. Wenn an der aktuellen Position keine Kollision vorliegt, wird die Instanz kurz vor der Kollision platziert. Wenn schon eine Kollision vorliegt, wird die Instanz nicht bewegt. Du kannst die maximale Bewegungsweite(maxdist) angeben (negative Werte bedeuten beliebig lange).

    Gruss Drachen
  • Joa, wär dann geklärt! ^^

    Thx!

    Edit:

    Jetzt ist aus der Code ein neues Problem enstanden. Wenn ich Springe
    und wieder aufkomme, bleibe ich nicht Stecken, sondern schwebe
    einbischen über der Platform. Ich hab schon alles ausprobiert, aber
    es geht nicht weg! (Benutze Masks)
    15.04.09/ Zustand: CRACK

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bongo Bongo ()