Pro | Plattform Game | Figur verschwindet!

  • GM 7

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

  • Pro | Plattform Game | Figur verschwindet!

    Hallo!
    Ich hab ein kleines Problem! Also, ich hab mir da für ein Jump'n'Run Game eine kleine Engine zusammengeschustert! :D
    Hier sind die Codes:

    Create

    GML-Quellcode

    1. image_index=0
    2. image_speed=0
    3. xspeed=0 // Lauf Variable


    Step

    GML-Quellcode

    1. x+=xspeed
    2. //Gravity Sachen...
    3. if(place_free(x,y+1))
    4. {
    5. gravity_direction=270
    6. gravity=0.3
    7. }
    8. else
    9. {
    10. gravity_direction=270
    11. gravity=0
    12. }
    Alles anzeigen


    Keyboard Left Event

    GML-Quellcode

    1. if(place_free(x-xspeed,y))
    2. {
    3. xspeed-=0.05
    4. }
    5. else
    6. {
    7. xspeed=0
    8. }


    Keyboard Right Event

    GML-Quellcode

    1. if(place_free(x+xspeed,y))
    2. {
    3. xspeed+=0.05
    4. }
    5. else
    6. {
    7. xspeed=0
    8. }


    Collision mit "o_solid" [o_solid ist auf Solid gestellt!]

    Quellcode

    1. Move to contact in direction direction, maximum 999, against solid objects


    Wenn ich jetzt aber das Objekt "o_solid" von der Seite berühre verschwindet mein Mario!?
    Woran liegt das? ?(
    Danke schon mal für alle Antworten :)
  • Move to contact in direction direction, maximum 999, against solid objects


    Auf jeden Fall daran. Benutz doch mal die Bounce Funktion (zum testen) oder lass das event mal weg (zum testen).
    Auf jeden Fall solltest du maximum runterstellen. Du sagst dem Ding es soll mti der geschwindigkeit 999 nach "direction". Stell maximum mal auf 10 oder so und mach direction-180.

    Gruß,
    ghost
  • Da du direction nicht veränderst bzw. nicht mit den verkoppelten speed-variablen arbeitest, ist direction immer auf 0 gesetzt und bei der Kollision wird dein objekt bis zu 999pixel weit nach rechts bewegt.
    Ich würde bei den Lauftasten direction auf 0 bzw. 180 setzten und statt 999 abs(xspeed) reinschreiben.
    Oder du benutzt statt xspeed hspeed, dann kannst du die zeile "x+=xpseed" weglassen. In dem Fall wird direction auch automatisch angepasst.
  • Benutzer online 1

    1 Besucher