flugzeug um 90° nach links und rechts drehen

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

  • flugzeug um 90° nach links und rechts drehen

    HI,
    in meinem 3D- Spiel steuert man ein Flugzeug.

    Vorerst:
    In den meisten 3D- Flugspielen muss das Flugzeug, um eine Kurve zu fliegen, mit der linken oder rechten Pfeiltaste in eine Längsposition gestellt werden. Dann drückt man die Pfeil- nach- unten- Taste und zieht so das Flugzeug in seine Richtung.

    Mein Ziel:
    In meinem 3D- Flugzeugspiel drückt man einfach die (z.B.) rechte Pfeiltaste, und das Flugzeug
    dreht sich um maximal 90° um die Längsachse, und so lange man die Taste hält um die Querachse.
    D.h. der Teil mit der Pfeil- nach- unten- Taste fällt weg.
    Info:
    xrot ist die Gradzahl, in der sich das Model um die x- Achse dreht


    Mein Quelltext:

    GML-Quellcode

    1. if keyboard_check(ord('D'))
    2. {
    3. direction+=3
    4. if xrot>90
    5. {xrot=90}
    6. xrot+=10
    7. }
    8. if keyboard_check(ord('A'))
    9. {
    10. direction-=3
    11. if xrot<-90
    12. {xrot=-90}
    13. xrot-=10
    14. }
    15. if keyboard_check(ord('W'))
    16. {
    17. speed+=0.2
    18. if speed>2
    19. {speed=2}
    20. }
    21. if keyboard_check(ord('S'))
    22. {
    23. speed-=0.2
    24. if speed<-2
    25. {speed=-2}
    26. }
    27. if not keyboard_check(ord('S')) && not keyboard_check(ord('W'))
    28. {
    29. if speed>0
    30. {speed-=0.2}
    31. if speed<0
    32. {speed+=0.2}
    33. if speed<0.4 or speed>-0.4
    34. {speed=0}
    35. }
    Alles anzeigen



    Das Problem:
    Nach der 90°- Drehung um die Längsachse dreht sich das Flugzeug weiter.
    (Wir reden hier noch nicht um die zu fliegende Kurve, sondern nur um die Drehung des Flugzeugs um seine eigene Längsachse)
    Zusätzlich dreht sich das Flugzeug um die z- Achse
    Das wichtigste BACK- UP ist das, wozu man keine Zeit mehr hatte

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Baddi ()

  • Ich würd's so machen - ist jetzt aber nur für deine Taste 'D':

    GML-Quellcode

    1. direction+=3; xrot+=10;
    2. if (xrot>=90) {xrot=90;}
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Original von Tobi
    Ich hab das mal getestet...

    Wenn xrot=90 ist, dreht sich das Model um die z-Achse weiter.


    Ich weiß nicht, wie du jetzt darauf kommst. Das ist schon richtig, wie er das meint.

    Ach so, tschuldige! Ja, es muss sich natürlich auf der Z-Achse weiterdrehen.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.

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

  • Hast du meinen Vorschlag nicht probiert? Wenn das nicht geht, musst du woanders einen Fehler haben, zumal ich bei deiner Variante schon nicht verstanden habe, warum das Problem bereitet.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.