(Android) Bewegung eines Objektes programmieren 2D

...komplette Frage anzeigen

1 Antwort

Du musst dem Objekt noch eine Geschwindigkeit zuordnen. Dabei gibt es im Wesentlichen zwei Möglichkeiten: Entweder, du fügst dem zu bewegenden Objekt zwei Variablen zu, die die Geschwindigkeit in x- und in y-Richtung repräsentieren. Oder du nimmst zwei Variablen, wobei eine die Geschwindigkeit und die andere die Richtung, z.B. in Grad oder im Bogenmaß, repräsentiert. Dabei musst du dir noch eine passende Einheit überlegen, etwa "Felder pro Sekunde", wobei eben gemessen wird, wie viele Felder pro Sekunde passiert werden. "Pixel pro Sekunde" ist nicht empfehlenswert, weil sich das Objekt dann auf verschiedenen Displays u.U. unterschiedlich schnell bewegt.

Dann hast du ja deine Main-Loop, also die Hauptschleife. In dieser Hauptschleife, die jedes Spiel besitzt, kannst du dann die Bewegung der Objekte verwalten: Du misst die aktuelle Zeit und berechnest, je nach verwendeter Uhr, irgendwie die verstrichene Zeit seit dem letzten Durchgang. Sagen wir mal, sie liegt bei 10ms und das Beispielobjekt bewegt sich 1 Feld/s nach unten (y-Richtung) und 2 Felder/s nach rechts (x-Richtung).

10ms * 1 Feld/s = 0,01 Felder

10ms * 2 Felder/s = 0,02 Felder

Demnach musst du das Objekt bei diesem Durchgang um 0,01 Feldlängen nach unten und um 0,02 Feldlängen nach rechts bewegen. Diese Berechnung findet dann in jedem Durchgang in der Hauptschleife statt. Du musst ihn unbedingt von der verstrichenen Zeit abhängig machen, weil sich dein Spiel sonst von Gerät zu Gerät anders verhält.

Ja, an die Sache mit den Pixeln hab ich auch gedacht :D Der Rest war echt eine große Hilfe für mich. Hast hiermit den Stern mehr als verdient. Besten Dank :))

0

Was möchtest Du wissen?