Problem mit Collision_point bei Walljump

  • GM 7

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

  • Problem mit Collision_point bei Walljump

    Hallo, ich bin neu hier im Forum :) Da ich in der SuFu keine passenden Ergebnisse fand habe ich diesen Thread eröffnet.

    Alsoich arbeite gerade an einem Spiel bei dem die Figur die Fähigkeit haben soll Wandsprünge auszuführen.
    Wenn die Figur die Wand berührt, soll sie an ihr entlang rutschen und dann bei Knopfdruck von ihr abspringen.
    Ich habe mir überlegt, dass man, da das Rutschen langsamer vonstatten gehen soll als das normale Fallen, einfach die Gravitation ändern kann falls der Player an der Wand ist.
    Jedoch habe ich ein Problem damit, dass der GM erkennen soll, wann der Player die Wand berührt.
    Ich habe es bereits mit collision_point, place_meeting, position_meeting und dem Kollisions Event mit der Wand ausprobiert.
    Mein Code sah so aus:

    GML-Quellcode

    1. if (collision_point(x-3,y,obj_block,false,false) && up = 1)
    2. {
    3. gravity = 0;
    4. }


    up definiert, dass sich der Player in der Luft befindet.
    Was ist der Fehler?
    Falls der Code nicht ausreicht um den Fehler zu finden schicke ich nochmal die .gmk
    Hoffe die Frage ist nicht zu blöd :D
  • Eigentlich sollte es so ohne Probleme funktionieren:

    GML-Quellcode

    1. if (place_meeting(x-3,y,obj_block)
    2. {gravity = 0.5};
    3. else {gravity = 3};


    Du musst aufpassen, das du an keiner anderen Stelle im Code die Gravity ständig auf z.B. 3 setzt. Ansonsten könnte auch dieses up = 1 ein Problem darstellen (wenn z.B. du vergisst up auf 1 zu stellen).
  • Danke für die Antwort, habe das Problem jetzt doch so gelöst

    GML-Quellcode

    1. if (!place_free(x+8,y) && gravity != 0)
    2. {
    3. walljump = 1
    4. }
    5. if (!place_free(x-8,y) && gravity != 0)
    6. {
    7. walljump = 2



    Ich habe 2 Variablen gewählt damit der GM weiß an welcher Seite man den Wandsprung machen möchte.
    Jedoch habe ich nun ein neues Problem:
    Wie bewege ich die Figur so, dass sie nach oben und zur Seite springt ohne, dass der speed zu hoch wird.
    Bei meinem jetzigen Programm fliegt die Figur immer so lange zur Seite, bis sie eine Wand berührt. Liegt wohl daran, dass der speed immer mehr wird, da walljump den derzeitigen Wert behält.
    Wie schaffe ich es, dass die Geschwindigkeit von Step zu Step langsamer wird?

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