360° drehung bei bewegung

  • GM 8

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

  • 360° drehung bei bewegung

    hi ... ich zermader mir seit tagen den kopf und die sufu hat mir leider auch nicht weiter geholfen ...

    daher frag ich jetzt einfach mal nach und zwar ...


    ich möchte ein object mit move_towards_point(x,y,speed) von einem zufälligen punkt im raum zu x,y bewegen und dabei sol das object immer eine 360° drehung machen egal wie weit und wie schnell sich das object bewegt ...


    ich hoffe die erklärung ist ausreichend und verständlich und ich bedanke mich schon mal für die hilfe ...


    meine bisherigen versuche habe immer nur zur folge das sich das object wie wild dreht oder nur kurz zuckt ...

    ich hatte versucht es mit hilfe folgenden formeln zu berechen:


    rotation = (360 / speed) * distance <-- bei hoher entfernung dreht es sich wie wild / bei kurzer zuckt es nur

    angle += rotation


    rotation = (360 / distance) * speed <-- dreht sich wie wild

    angle += rotation


    MFG

    Der Death
    ---- wer fehler findet darf sie behalten ---
  • Hab das gerade bei mir nachgebastelt. Wenn du die Rotation nur von der Entfernung zum Ziel abhängig machen willst funktioniert das so:

    benötigte Variablen:
    var_rotation
    var_distance

    Im Step Event:
    Wenn die rotation 0 ist und Entfernung zum Ziel >0:
    var_rotation=var_distance/360;

    Wenn var_distance=0:
    var_rotation=0;

    Im Draw Event:
    Wenn var_rotation>0 & var_distance>0:
    folgenden Code ausführen:

    GML-Quellcode

    1. draw_sprite_ext(spr_player,0,x,y,1,1,(360-(var_distance/var_rotation)),c_white,1);


    Getestet und funktioniert ;)

    mfg
    G
  • iwie will das nicht gehen ... jetzt dreht es sich garnicht mehr ...

    ich habe jetzt folgendes ...
    im create:

    GML-Quellcode

    1. image_alpha = 0.8
    2. angle = 0
    3. size = 1
    4. player = 0 //wird vom erstellenden object festgelegt
    5. xx = 0
    6. yy = 0
    7. distance = 0
    8. rotation = 0
    9. sp = 0
    10. stapel = noone
    11. move = false
    12. created = false
    Alles anzeigen



    im step:

    GML-Quellcode

    1. if(created == false){
    2. if(player == 1){
    3. stapel = global.stapelP1
    4. }else{
    5. stapel = global.stapelP2
    6. }
    7. xx = stapel.x
    8. yy = stapel.y
    9. distance = distance_to_point(xx,yy)
    10. sp = distance / 5
    11. created = true
    12. }else{
    13. if(move == true){
    14. move_towards_point(xx,yy,sp)
    15. rotation = distance / 360;
    16. if(distance_to_point(xx,yy) > 0){
    17. angle = 360-(distance/rotation)
    18. }else{
    19. instance_destroy()
    20. }
    21. }
    22. }
    Alles anzeigen


    --- edit ---

    ok ich habs ...

    GML-Quellcode

    1. rotation = 360 / (distance / sp)


    danke dennoch für die hilfe
    ---- wer fehler findet darf sie behalten ---

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Deathshadow ()