bewegung

  • Hallo!
    Ich habe den Gamemaker erst seit kruzen habe habe mal eine Frage zur Bewegung.
    Ich wollte mein Objekt um jeden beliebiegen grad mit den Pfeiltasten um die eingene Achse drehen können , dass ist mir auch teilweise gelungen nur der Sprite bleibt immer gleich... sonst macht er das mit der bewegung.

    Muss ich jetzt jede einzelene grafik herstellen wie es ausiseht, wenn es sich um einen grad gedreht hat oder geht das auch anders?

    Ich hoffe ich habe mich einiger Massen klar ausgedrückt, damit ihr mir helfen könnt.
    Danke im vorraus.

    Nodless
  • Die einfachste Lösung ist: Geh auf EDIT sprite und dann im Punkt Animation auf Rotation Sequence ->Counter Clockwise. Gib nun die Anzahl der Rotationsschritte an und das Programm erledigt den Rest. DU musst nichtmal mehr die Ränder nachkorrigieren.
    Das kommt dann als Code ins Step-Event:

    Quellcode

    1. image_index = direction * image_number/360;
    2. image_speed = 0;


    Das ganze findet sich im Prinzip auch in der Hilfe, zu deren Lektüre ich nur raten kann...
    Einige meiner Spiele:
  • Am leichtesten ist es wenn du dein Sprite erstmal mit Transform Rotate 90 nach rechts drehst. Dann kannst du alle anderen Schritte wiederholen und es müsste passen.
    Einige meiner Spiele:
  • Das liegt daran, dass das Richtungskreuz vom GM so auschaut:
    (Nicht von den Unerlines verwirren lassen, die müssne leider sien, sonst funzt die Darstellung net).

    _____90
    _____ -
    180---------0
    _____-
    ____270

    Die Direction geht also im Uhrzeigersinn.
    Wobei 0, der Standard, nach rechts schaut. 360 = 0, so am Rande. Die direction wird automatisch wieder in das 0-359-Modell hineingequetscht, wenn der Wert darüber hinaus geht.

    Willst du einen anderen "Standardsprite", musst du in der Berechnung immer noch einen Winkel(für gewöhnlich in 90er-Schritten) hinzuaddieren, also z.B. einfach +90 am Ende der Formel.
  • Ja, Mewx hat natürlich recht und es ist jedem selbst überlassen, wie ers bewerkstelligt. Ich für meinen Teil mag es lieber, wenn die Grafiken passen und ich nicht an den Objekten selber noch Werte dazuaddieren muss. Und ein einfaches Transform->Rotate reicht in diesem Fall vollkommen aus. Interessant wird die Sache doch erst wenn man das ganze Objekt auch noch animiert... Die Animation rotiert er nämlich nicht schön mit. Also muss man die erste Animationsstufe zeichnen, rotieren, als gif abspeichern, nächste Animationsstufe zeichnen, rotieren und als gif abspeichern usw., dann alle gifs hintereinander importieren und dann den Code erweitern:

    Quellcode

    1. image_index = direction * image_number/(360*Anzahl_der_Animationsstufen) +
    2. aktuelles_Animationsbild*image_number/Anzahl_der_Animationsstufen;
    3. image_speed = 0;
    4. if (aktuelles_Animationsbild==Anzahl_der_Animationsstufen)
    5. aktuelles_Animationsbild=0;
    6. else
    7. aktuelles_Animationsbild+=1;

    dazu müssen die Variablen Anzahl_der_Animationsstufen und aktuelles_Animationsbild natürlich im Create_Event erstmal erstellt werden !
    Einige meiner Spiele:

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

  • Benutzer online 1

    1 Besucher