Hilfe
Parameter
-
Rückgabewert
-
Beschreibung
Mit CaptureWorld kann ein "snapshot" aller Objekte (entitys) erstellt werden. Dabei werden Positionen und Drehwinkel der Objekte gespeichert.
Nachdem ein "snapshot" gemacht wurde, können die Objekte verschoben und gedreht werden. Danach kann man eine Animation zwischen den zwei Bewegungen erstellen. Dazu muss man den Befehl RenderWorld benutzen. RenderWorld 0 zeichnet die Objekte an der Position, wo ein "snapshot" erstellt wurde. Mit RenderWorld 1 werden die Objekte dagegen an der aktuellen Position eingezeichnet. Mit den Zwischenwerten können die Objekte animiert werden.
Der Grund für diese Technik ist sehr einfach. Die Spielobjekte können mit einer geringeren CPU-Belastung bewegt werden, da nur die Veränderungen berechnet werden. Zudem kann man das Updaten der Objekte etwas reduzieren. So kann man z.B. 30 Animationsstufen erstellen, aber ganze 60 anzeigen (mit Zwischensequenzen).
Beispiel
Standardbeispiel:
SetBuffer BackBuffer()
camera = CreateCamera()
light = CreateLight(1)
RotateEntity light, 90, 0, 0
Dim c(100)
For i = 0 To 100
c(i) = CreateCube()
PositionEntity c(i), Rnd( - 10, 10), Rnd( - 10, 10), Rnd(10, 100)
RotateEntity c(i), Rnd(360), Rnd(360), Rnd(360)
Next
CaptureWorld
For i = 0 To 100
PositionEntity c(i), Rnd( - 10, 10), Rnd( - 10, 10), Rnd(10, 100)
RotateEntity c(i), Rnd(360), Rnd(360), Rnd(360)
Next
While Not KeyDown(1)
value# = (value# + 1) Mod 360
RenderWorld Sin#(value#) * .5 + .5
Flip
Wend
End
Siehe auch