Rotation + Bewegung entlang X/Y [2D]



  • Hallo,

    ich versuche mich gerade ein wenig an Rotationen etc. Das ganze bezieht sich alles auf eine 2D-Welt. Nun möchte ich das rotierte Objekt in die Ausgangsrichtung weiterfahren lassen. So das man das Objekt mit den Pfeiltasten links und rechts drehen und mit den Pfeiltasten oben und unten in die gerade aktive Richtung fahren lassen kann. Dabei scheitere ich aber gerade.

    Ich habe es so versucht

    if Taste PFEIL_HOCH {
    obj.setX(obj.getX() - sin(obj.getRotation() * 100 * frameTime));
    obj.setY(obj.getY() - cos(obj.getRotation() * 100 * frameTime));
    }
    
    if Taste PFEIL_RUNTER {
    obj.setX(obj.getX() + sin(obj.getRotation() * 100 * frameTime));
    obj.setY(obj.getY() + cos(obj.getRotation() * 100 * frameTime));
    }
    

    Leider erhalte ich dabei nicht das gewünschte Ergebnis. Könnte mir jemand sagen wie ich es verbessern muss? Ich bin etwas ratlos 😕

    Vielen Dank im Voraus,
    SuperNooby



  • Kann es sein, dass du Sinus und Cosinus vertauscht hast?

    SuperNooby schrieb:

    Leider erhalte ich dabei nicht das gewünschte Ergebnis. Könnte mir jemand sagen wie ich es verbessern muss? Ich bin etwas ratlos 😕

    "Nicht das gewünschte Ergebnis" ist eine sehr schlechte Fehlerbeschreibung. Woher sollen wir denn wissen, welches Ergebnis du dir wünscht?

    Hinweis



  • Hi,

    tut mir leid, dass ich mein Problem so schlecht beschrieben habe, aber es ist einfach nicht so einfach zu erklären was schief geht.

    Also ich wünsche mir so ein Ergebnis:
    http://www.tonypa.pri.ee/tbw/tut20.html

    Das Problem bei meinem Code ist das sich mein Objekt nicht so verhält wie man es erwartet. So bewegt es sich in ganz andere Richtung etc. Es ist also ein Fehler in der Berechnung und da ich mich mit Sinus und Cosinus nicht besonders gut auskenne bin ich nun auf eure Hilfe angewiesen. Ich hoffe, ihr könnt nun mit Hilfe des obigen Beispiels den Fehler ausfindig machen und mir mein Wochenende retten 😃

    Vielen Dank,
    SuperNooby



  • SuperNooby schrieb:

    Ich hoffe, ihr könnt nun mit Hilfe des obigen Beispiels den Fehler ausfindig machen und mir mein Wochenende retten 😃

    ProgChild schrieb:

    Kann es sein, dass du Sinus und Cosinus vertauscht hast?

    Beantworte doch mal meine Frage...



  • was bitte macht frametime im Argument des sinus? das soll doch die Bewegung skalieren? Dafür mußt du die eine klammer etwas früher schließen. vermutlich sogar noch vor dem *100... aber das hängt davon ab in welchem format du den winkel speicherst,


Anmelden zum Antworten