Sprite3D Anzeigenproblem
Verfasst: 20.10.2005 08:55
Hallo Leidensgenossen,
ich habe ein Problem mit der Anzeige eines 3DSprites, gestern funktionierte es noch, heute nicht mehr. Ich habe eine Figur (Dreieck) welche von der oberen linken Ecke in die gegengesetzte Ecke wandern soll. Dies funktionierte gestern auch noch und heute wid das Spirit nicht mehr angezeigt
Warum ?
Wo liegt mein Fehler?
Code: Alles auswählen
{- Konstante
#Spirits = 0
#xyLine = 100
#wWidth = 800
#wHeight = 400
;} Konstante
;{- Variablen
Structure xyPoint
x.l
y.l
r.l
EndStructure
Global xyD.xyPoint
;} Variablen
Procedure Figur_Create()
CreateSprite(#Spirits, #xyLine, #xyLine, #PB_Sprite_Texture)
If StartDrawing(SpriteOutput(#Spirits))
BackColor(0,0,0): FrontColor(0,255,0)
LineXY(00 , 00, 00 , #xyLine, #Blue)
LineXY(00 , 00, #xyLine , 00 , #Blue)
LineXY(#xyLine, 00, 00 , #xyLine, #Blue)
FillArea(10 , 10, #Blue , #Red)
StopDrawing()
EndIf
CreateSprite3D(#Spirits, #Spirits)
EndProcedure
Procedure Figur_Activate()
xyD\x = 0: xyD\y = 0: xyD\r = 180
If Start3D()
RotateSprite3D (#Spirits, xyD\r, 0)
DisplaySprite3D(#Spirits, xyD\x, xyD\y)
Stop3D()
Else
MessageRequester("Error", "Can't open 3D", 0)
EndIf
EndProcedure
Procedure Figur_Draw()
If Start3D()
DisplaySprite3D(#Spirits, xyD\x, xyD\y, 255)
Stop3D()
Else
MessageRequester("Error", "Can't open 3D", 0)
EndIf
EndProcedure
Procedure SetFigur()
If (xyD\x<(#wWidth -#xyLine)): xyD\x+2: EndIf
If (xyD\y<(#wHeight-#xyLine)): xyD\y+1: EndIf
ClearScreen(0 , 0, 0)
EndProcedure
;{- Program
If (InitSprite()=0) Or (InitKeyboard()=0)
MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
End
EndIf
If (InitSprite3D()=0)
MessageRequester("Error", "Direct3D system can't be initialized correctly", 0)
End
EndIf
OpenWindow(0, 100, 100, #wWidth, #wHeight, #PB_Window_TitleBar|#PB_Window_ScreenCentered, "Übungssource 4")
OpenWindowedScreen(WindowID(), 0, 0, #wWidth, #wHeight, 1, 0, 0)
Figur_Create ()
Figur_Activate()
Repeat
ExamineKeyboard()
SetFigur()
Figur_Draw()
FlipBuffers()
WindowEvent()
Until KeyboardPushed(#PB_Key_Escape)
;} Program
End