Code: Alles auswählen
InitSprite()
InitKeyboard()
InitSprite3D()
; heute mal nur ein Windowed-Screen
; anstatt eines Fullscreens
OpenWindow( 0, #PB_Ignore,0, 400,300, "Animations-Demo")
OpenWindowedScreen( WindowID(0), 0,0, 400,300, 0,0,0 )
; jetzt erzeugen wir einen lustigen bunten Ball als Sprite
CreateSprite( 0, 128, 128, #PB_Sprite_Texture )
TransparentSpriteColor( 0, RGB( 255, 0, 255 ) ) ; Transparenzfarbe PUR
StartDrawing( SpriteOutput(0) )
Box(0,0,128,128, RGB( 255, 0, 255 ) ) ; Hintergrund in PUR
For n=0 To 31
Circle( 64+n, 64+n, 64 - 2*n, RGB( 0, 8*n, 248) )
Next
StopDrawing()
; nur mal vorzeigen, wie der Ball aussieht
DisplayTransparentSprite( 0, 136, 86 )
; für 1.5 sec
FlipBuffers()
Delay( 1500 )
; jetzt machen wir'n Sprite3D draus, um den Ball rotieren zu können
CreateSprite3D( 0, 0 )
BallX.l = -128
BallY.l = 170
BallR.l = 0
SetFrameRate(60)
Repeat
;************************************
; Eventhandling wird fürn WindowedScreen gebraucht,
; fürn Fullscreen ist das überflüssig.
Repeat
Event = WaitWindowEvent(10)
If Event = #PB_Event_CloseWindow
EXIT = 1
EndIf
Until Event = #Null
;************************************
ClearScreen( $200810 ) ; Screen löschen
; Farbe ist RGB( 16, 8, 32 ) als HEX geschrieben
BallR = (BallR + 1) % 360 ; Ball Rotation um #PI erhöhen und auf 360° beschränken
BallX +1 ; BallX um 1 erhöhen
If BallX > 400 ; rechts verschwunden?
BallX = -128 ; links außen hinsetzen
EndIf
;********
Start3D()
RotateSprite3D( 0, BallR, 0 ) ; aktuelle Rotation
DisplaySprite3D( 0, BallX, BallY ) ; anzeigen
Stop3D()
;********
FlipBuffers( #PB_Screen_SmartSynchronization )
Until EXIT
[edit2] Drehungsschritte auf 1° geändert.