Bewegung in Sichtlinie?

  • GM 8
  • Bewegung in Sichtlinie?

    Hallo bin ziemlich neu mit gm 8 und habe auch sonst noch keine Erfahrungen mit Programmierung habe das Forum etwa 1-2 Stunden durchforstet aber keine Lösung für mein Problem gefunden deswegen frage ich einfach mal.

    Ich habe vor ein Spiel zu machen wo man mit einem Raumschiff durch den Weltraum fliegt hierbei nutze ich die Tasten a und d um eine Rotation zu erzeugen die auch wunderbar funktioniert aber leider bekomme ich eine Erhöhung der Geschwindigkeit durch drücken der w taste in Richtung der Sichtlinie nicht hin habe alles ausprobiert was mir eingefallen ist und komme nicht weiter Hilfe wehre nett!

    PS: Bis jetzt erst mal nur Studio Version vorhanden.
  • Gunzli schrieb:

    Hallo bin ziemlich neu mit gm 8 und habe auch sonst noch keine Erfahrungen mit Programmierung habe das Forum etwa 1-2 Stunden durchforstet aber keine Lösung für mein Problem gefunden deswegen frage ich einfach mal.

    Ich habe vor ein Spiel zu machen wo man mit einem Raumschiff durch den Weltraum fliegt hierbei nutze ich die Tasten a und d um eine Rotation zu erzeugen die auch wunderbar funktioniert aber leider bekomme ich eine Erhöhung der Geschwindigkeit durch drücken der w taste in Richtung der Sichtlinie nicht hin habe alles ausprobiert was mir eingefallen ist und komme nicht weiter Hilfe wehre nett!

    PS: Bis jetzt erst mal nur Studio Version vorhanden.

    Willkommen in der Zuflucht gm-d. =)
    Also, das Raumschiff soll beschleunigen?
    Dann empfehle ich dir, Reibung (Friction) in das Create-Event zu packen.
    Dann beschleunigt und bremst dein Spieler, je nach Reibung, langsam.
    Vllt. hattest du das ja schon in Physik :)

    Hier noch ein Beispiel:
    :event_create: Create-Event

    :action_friction: Friction=Deine Reibungskräfte (z.B. 0.01)


    :event_keyboard: W-Event:

    :action_variable: Speed=Deine Geschwindigkeit (z.B. 4)

    :event_keyboard: S-Event
    :action_variable: Speed=0

    Wenn du willst, dass dein Raumschiff immer in Richtung "Richtung" guckt, solltest du das machen:
    :event_step: Step-Event

    :action_variable: Variable=image_angle
    Value=direction

    Ich hoffe so klappt es.
    Mit freundlichen Grüßen =D
  • Gunzli schrieb:

    Das hat leider nicht funktioniert es findet zwar eine Bewegung statt aber leider nur nach rechts also in Richtung 0 und nicht in die Richtung in die mein Schiff zeigt.
    Dann musst du bei dem Event:

    :event_keyboard: A-Event:
    :action_variable: direction+=1

    und bei dem Event:
    :event_keyboard: D-Event:
    :action_variable: direction-=1;

    Und dann noch:

    Wenn du willst, dass dein Raumschiff immer in Richtung "Richtung" guckt, solltest du das machen:
    Step-Event

    Variable=image_angle
    Value=direction
  • Ich finde es immer gut das Ganze in GML nochmal zu schreiben, damit man sich gleich in das Gebiet hineinschnuppern kann.
    Es macht wenig Sinn bei D&D stecken zu bleiben:

    GML-Quellcode

    1. if keyboard_check(ord('A')) //wenn "A" gedrückt ist...
    2. {
    3. image_angle += 5 //image_angle ist der winkel deines Raumschiffes
    4. }
    5. if keyboard_check(ord('D'))
    6. {
    7. image_angle -= 5
    8. }
    9. if keyboard_check(ord(W'))
    10. {
    11. speed = 4
    12. direction = image_angle //direction ist die Richtung, in die es fliegen soll.
    13. }
    Alles anzeigen


    edit: Der Code kommt ins Step-Event.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • levarris07 schrieb:

    Ich finde es immer gut das Ganze in GML nochmal zu schreiben, damit man sich gleich in das Gebiet hineinschnuppern kann.
    Es macht wenig Sinn bei D&D stecken zu bleiben:

    GML-Quellcode

    1. if keyboard_check(ord('A')) //wenn "A" gedrückt ist...
    2. {
    3. image_angle += 5 //image_angle ist der winkel deines Raumschiffes
    4. }
    5. if keyboard_check(ord('D'))
    6. {
    7. image_angle -= 5
    8. }
    9. if keyboard_check(ord(W'))
    10. {
    11. speed = 4
    12. direction = image_angle //direction ist die Richtung, in die es fliegen soll.
    13. }
    Alles anzeigen


    edit: Der Code kommt ins Step-Event.



    Ich habe das mit deinem gml Code ausprobiert leider funktionieren die Zeilen so nicht bei mir
    if keyboard_check(ord('A'))
    nur wenn ich das so mache
    if keyboard_check (vk_left)
    und dann natürlich nur für die im Code angegebene left Taste generell nur die im vk_ vorgeschlagenen tasten klappen aber nicht das von dir vorgeschlagene (ord(‘a’)) woran könnte das liegen?

    Werre wirklich nett wen mir da noch einmal geholfen werden könnte bin an gml sehr interessiert!
  • Hast Du "A" großgeschrieben?
    Das könnte der Fehler sein.

    edit: Mir ist ein Fehler aufgefallen:
    Beim "W" fehlt ein Anführungszeichen:

    GML-Quellcode

    1. if keyboard_check(ord('W'))

    so stimmts.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Benutzer online 2

    2 Besucher