Objekt springen lassen wie bei doodle jump

  • GM 8

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

  • Objekt springen lassen wie bei doodle jump

    Hallo ci wollte ein doodle-jump-ähnliches spiel programmieren.

    damit der player hüpft habe ich in das collisions event des player mit dem solidem objekt plattform gemacht.

    der player hüpft auch ganz richtig aber er wird immer höher!! wie kann ich das umgehen dass dies passiert?!
  • Luki1_2_3 schrieb:

    Hallo ci wollte ein doodle-jump-ähnliches spiel programmieren.

    damit der player hüpft habe ich in das collisions event des player mit dem solidem objekt plattform gemacht.

    der player hüpft auch ganz richtig aber er wird immer höher!! wie kann ich das umgehen dass dies passiert?!
    mach anstatt das mal einen code rein, welcher wie folgt ausschaut.

    GML-Quellcode

    1. vspeed = -7


    im Stepevent setzt du dann noch die Gravity auf 0.5 bei der direction 270 und dann sollte es passen.
  • Ich weiß nicht, wie gut deine GML-Kenntnisse sind, deshalb erlaube ich mir einfach mal ein bisschen zu erklären, damit du dazu lernst.
    Nimm es mir also bitte nicht übel, wenn ich Dinge schreibe, die du schon weißt.


    • Die Variable "vspeed", kann man auch über D&D mittels :action_vspeed: ändern.
    • Die "gravity" (Schwerkraft) kann man auch inklusive der Richtung mittels :action_gravity: ändern.
    • Falls dich interessiert von D&D auf GML umzusteigen: ich habe mal kurz gesucht und ein PDF gefunden, in dem alle D&D-Actions als GML-Code aufgeschlüsselt sind. Ist zwar für den Game Maker 7.0 geschrieben, in 8.1 müssten aber das Meiste noch Glütigkeit haben.
    • Der Wert "-7" für vspeed beschreibt eine vertikale Geschwindigkeit (vertical speed) = mit der Geschwindigkeit von -7 Pixeln (also 7 Pixel nach "oben") pro Step
    • Warum ist "-" nach oben?
      [hide]Zur Veranschaulichung habe ich mal ein (vertikal-gespiegeltes) Graphengitter gezeichnet. Der rote Bereich ist der Room.

      Der Nullpunkt (0|0) befindet sich in der oberen linken Ecke. Erhöht man den x-Wert, "geht" es nach rechts; verringert man ihn, nach links. Erhöht man den y-Wert, "geht" es nach unten; verringert man ihn, nach oben.[/hide]
    • Stell dir bei der direction einen Kreis vor, wobei er an äußersten rechten Stelle beginnt: 0° bzw. 360° entsprechen dann also der Richtung "rechts". Dann geht es gegen den Uhrzeigersinn weiter: 90° entspicht "oben", 180° "links", 270° "unten". Dazwischen sind natürlich auch Richtungen möglich.
    • Der gravity-Wert beschreibt, wie stark ein object von etwas angezogen wird. In deinem Fall wird dein Jump-Object vom Boden angezogen (also nach unten: gravity_direction = 270, wobei das standardmäßig so eingestellt ist). Mit der "einfachen" direction-Variable kannst du die Richtung der Schwerkraft nicht beeinflussen. Die Anziehungskraft lässt dein object in die angegebene Richtung stetig schneller fallen (in exponentiellem Maße). Du kannst sowohl positive als auch negative Werte eingeben, wobei ein negativer Wert, die Richtung umkehrt.

    Marvin159 schrieb:

    im Stepevent setzt du dann noch die Gravity auf 0.5 bei der direction 270 und dann sollte es passen.
    Es reicht auch, das Ganze einmal festzulegen (naheliegend im Create-Event des Jump-Objects) und natürlich solltest du anstelle von "direction" "gravity_direction" nehmen, wobei "270" ja sowieso standardmäßig eingestellt ist.
  • danke domimah für die ausführliche erklerung.

    ich habe zwar schon (fast) alles gekannt aber td vielen dank für deine mühe.

    ich habe auch schon überlegt auf gml umzusteigen und mir vorgenommen, in den sommerferien mich etwas mit gml zu bescheftigen, da ich nicht von der schule abegelenkt werden will.. ^^

    ich probier mal ein bisschen rum dann werdichs schon schaffen...

    vielen dank für die hilfreichen antworten!