Für die praktische Verwendung braucht man nur mehr die Rahmenbedingungen
für die Geschwindigkeit des Sprites festlegen. Bei konstanter
Geschwindigkeit stehen 3 Möglichkeiten zur Auswahl:
-
die Bewegung soll in einer bestimmten Anzahl von Schritten erfolgen
-
die Bewegung soll in einer bestimmten Zeit erfolgen
-
jeder Schritt der Bewegung soll eine bestimmte Länge aufweisen
ad 1) Bewegung in einer bestimmten Anzahl von Schritten
Wenn die maximale Anzahl von Schritten gegeben ist (zB. im GetPropertyDescriptionList
Handler), braucht man nur noch einen Zähler (am Besten als Property
festhalten), und eine einzige Zeile, die die neue Position errechnet:
neuerPunkt = StartPunkt + (Bewegungsvektor * Zähler /
GesamtanzahlSchritte)
ad 2) Bewegung in einer bestimmten Zeit
Am Anfang der Bewegung muß ein Timer gestartet werden, damit bei
jedem Schritt der Bewegung die bereits verstrichene Zeit berechnet werden
kann:
neuerPunkt = StartPunkt + (Bewegungsvektor * verstrichenerZeit
/ GesamtZeit)
ad 3) Bewegung mit bestimmten Schrittlängen
Wenn sich das Sprite in einer bestimmten Anzahl von Pixeln pro Frame
bewegen soll, ist es notwendig, die Gesamtlänge der Strecke zu kennen,
um in weiterer Folge die Relation zw. Teilstrecke und Gesamtstrecke berechnen
zu können.
Für die Berechnung der Gesamtlänge hilft der Pythagoras.
Für die Berechnung der Bewegung könnte man zB den aktuellen
Punkt als Property festhalten, und von diesem aus den nächsten Punkt
berechnen:
neuerPunkt = letzterPunkt + (Bewegungsvektor * Schrittlänge
/ Gesamtlänge)
|