Objekt langsam drehen lassen

  • GM 8

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

  • Objekt langsam drehen lassen

    Hi,

    ich habe ein kleines (mathematisches) Problem:
    Das ganze habe ich hier veranschaulicht:

    tower_direction soll sich immer langsam zu tower_direction_max drehen.
    Jedoch soll es immer den schnellsten Weg nehmen.
    Und da ist das Problem:
    Wie kann man die beiden Winkel zwischen den Linien berechnen und immer die kleinere Route nehmen?
    Habt ihr eine Lösung?
    Also, theoretisch praktisch soll es wie bei BattleTanksOnline² sein.
    Der Turm soll sich also langsam mitdrehen.
    Ihr werdet wohl verstehen, was ich meine. :)
  • Bin ziemlich schlecht im erklären, aber so würde es funktionieren.

    GML-Quellcode

    1. var mdir, dir_dif, dir_speed;
    2. dir_speed = 4; //Drehgeschwindigkeit
    3. mdir = point_direction(x,y,mouse_x,mouse_y);
    4. dir_dif = ((((dir - mdir) mod 360) + 540) mod 360) - 180;
    5. if(dir_dif > 0)
    6. {
    7. if(abs(dir_dif) > dir_speed)
    8. dir -= dir_speed;
    9. else
    10. dir = mdir;
    11. }
    12. else
    13. {
    14. if(abs(dir_dif) > dir_speed)
    15. dir += dir_speed;
    16. else
    17. dir = mdir;
    18. }
    Alles anzeigen


    dir = Die aktuelle Position
    mdir = Die Zielposition
    dir_speed = Die Geschwindigkeit

    EDIT: Kleiner Fehler...
  • Benutzer online 1

    1 Besucher