Raktetensteuerung mit Gravity ?

  • GM 8

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

  • Raktetensteuerung mit Gravity ?

    Ich möcht ein kleines Raketenspiel erstellen, die Rakete soll durch das Level anhand der Pfeiltasten gesteuert werden.
    Die Rakete sollte aber der Schwerkraft ausgesetzt sein ?
    Am liebsten ohne .dll, wenn es nicht anders geht mit .dll
    Danke schon mal !

  • Ich komm leider nicht drauf ?
    Wenn ich Gravity direction 270 und gravity = __ im step event eingebe ,kann ich die rakete nicht mehr steuern,
    wo muss ich die gravity hingeben, auf das create oder ......,so das wenn ich pfeil taste nach oben drücke das sie zb dann die rakete nach oben fliegt und ich dann nicht mehr
    die pfeiltaste drücke dass die rakete an speed verliert (speed -=1) und dann nach unten absackt.

    Hab leider kein tutorial gefunden in diese richtung ? ?(
    Dateien
    • rocket.rar

      (18,19 kB, 360 mal heruntergeladen, zuletzt: )
  • Hab ich was falsch im step Event :

    Quellcode

    1. if (vk_right)
    2. direction += 1;
    3. if (vk_left)
    4. direction -= 1;
    5. image_angle = direction;
    6. if (vk_up)
    7. speed += 0.05;


    Funtkioniert beides nicht

    Quellcode

    1. if keyboard_key_press(vk_right)
    2. direction += 1;
    3. if keyboard_key_press(vk_left)
    4. direction -= 1;
    5. image_angle = direction;
    6. if keyboard_key_press(vk_up)
    7. speed += 0.05;
  • GML-Quellcode

    1. if (keyboard_key_press(vk_right))
    2. direction += 1;
    3. if (keyboard_key_press(vk_left))
    4. direction -= 1;
    5. image_angle = direction;
    6. if (keyboard_key_press(vk_up))
    7. speed += 0.05;


    Probier mal das ;),
    Edit: Wahrscheinlich liegts daran das (keyboard_key_press(vk_right)) die zwei Klammern fehlten.
  • Habs mir mal angeschaut und kann dir vielleicht ein bisschen helfen.
    Du machst die Tastenüberprüfung im hochgeladenen Beispiel mit keyboard_check_pressed(key). Das bedeutet, dass geprüft wird, ob die Taste im letzten Step runtergedrückt wurde. Es bringt damit nichts, wenn man die Taste gedrückt hält, weil dann die aktion nicht ausgelöst wird. Lösung: stattdessen keyboard_check(key) benutzen.
    Warum sich nichts bewegt ? Schau dir mal deine Zahlen an: direction += 1 bedeutet, dass die Rakete sich um 1° nach links dreht, was nicht sichtbar ist.
    und ein Speed von 0.05 ?? Also ein zwanzigstel Pixel pro Step ? Lösung: bei beiden höhere Werte nehmen und stattdessen lieber eine konstante Geschwindigkeit benutzen (nicht speed += ... sondern speed = ...) oder eine Höchstgeschwindigkeit mit einer If-Abfrage einbauen (if speed < Höchstgeschwindigkeit beschleunigung; else nichts)

    Ein Problem, für das ich keine Lösung habe, weil ich nie damit gearbeitet habe: wenn mal die Richtungstasten loslässt, wird die direction offenbar durch die Gravity wieder auf 270 gesetzt, man kann sich also gar nicht nach oben oder zur Seite bewegen. Vielleicht ginge das irgendwie anders, z.B. dass man im Step Event vspeed += 0.2 (oder anderer Wert) setzt und die gravity komplett rauslässt.
    Edit: grade getestet, klappt noch nicht so gut...
  • Hatte es auch schon so :

    Kann normal beschleunigen , Wenn ich die Rakete mit der Spitze nach unten drehe fängt gravity an zu wirken und wenn ich die Rakete wieder nach oben drehe verliert es langsam
    an gravity.(Vielleicht nur Image_Angle drehen und direction anders definieren ?)

    Ich hätte nicht gedacht das dass so schwer sein kann wenn ich im Prinzip ein "Lunar Lander" Spiel machen möchte nur halt mit einer Rakete die sich auch noch drehen kann.
  • Hab' schnell mal eine Engine geschrieben

    Das war gar nicht so einfach.
    Hier, bitte.

    Das hier ist eine schon ziemlich ausgewachsene Physic-Engine.
    Alles lässt sich im Create Event der Rakete modifizieren. Viel Spaß.

    EDIT: Ach ja, die Lösung: Man muss einfach eine unabhänige speed und
    direction variable einfügen und dann noch ein bisschen rumbasteln.
    Schaut euch ruhig mal die Engine an (=

    EDIT2: Ich nehme noch ein paar Bugfixes vor.

    EDIT3: Oh, das muss sich wohl noch jemand angucken. Es gibt nen Bug wenn man zur Seite fliegt.
    und friction gibt es auch keine.

    EDIT4: Man müsste eine Kraft von unten einfügen, jedoch würde das die Schwerkraft zu nichte machen.
    Epische Zwickmühle.
    Dateien
    • rocket.zip

      (27,38 kB, 368 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von Mr. Diesel () aus folgendem Grund: Was meinst du hier zu finden??!