Code: Alles auswählen
InitSprite()
InitSprite3D()
InitKeyboard()
OpenScreen(640,480,16,"3D")
CreateSprite(0,128,128,#PB_Sprite_Texture)
StartDrawing(SpriteOutput(0))
DrawingMode(0)
Box(000,000,128,128,$00AA00)
DrawingMode(4)
Box(000,000,128,128,$0000FF) ; Aussenrand
Box(001,001,063,063,$FF0000) ; linke obere Ecke blau
Box(064,001,063,063,$0000FF)
Box(001,064,063,063,$0000FF)
Box(064,064,063,063,$0000FF)
StopDrawing()
CreateSprite3D(0,0)
Repeat
ExamineKeyboard()
ClearScreen(0,0,0)
DisplaySprite(0,10,10)
Start3D()
DisplaySprite3D(0,010,200,255)
If KeyboardPushed(#PB_Key_Space): RotateSprite3D(0,0,0): EndIf
DisplaySprite3D(0,200,200,255)
Stop3D()
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor($FF,$FF,$FF)
Locate(140,10):DrawText("Originalbild")
StopDrawing()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)RotateSprite3D wird mit dem Parameter '0' verwendet, der laut Handbuch das Sprite zurücksetzen müsste: 0: Alle Dimensionen werden auf ihre Original-Werte zurückgesetzt (damit werden alle vorherigen "Zoom" oder "Rotate" Operationen rückgängig gemacht). Dies ist sehr nützlich, wenn mehrere Sprites zur gleichen Zeit aus einem #Sprite3D generiert werden. Dadurch kann jedes Sprite korrekt, mit seinem eigenen Winkel, angezeigt werden.
... ich wundere mich, dass das bisher nicht aufgefallen ist.