Code: Select all
;
; ------------------------------------------------------------
;
; PureBasic - Mesh (Skeleton Animation)
;
; (c) 2002 - Fantaisie Software
;
; ------------------------------------------------------------
;
; Modified by Rook Zimbabwe
; and DarkDragon (in order to help Rook Zimbabwe)
IncludeFile "Screen3DRequester.pb" ; why can I not go around this???
InitSprite()
InitKeyboard()
InitMouse()
Define.f KeyX, KeyY
#WheelMesh = 0
#WheelMesh2 = 1
#WheelMesh3 = 2
#WheelMesh4 = 3
#WheelTexture = 0
#Wheel = 0
#Wheel2 = 1
#Wheel3 = 2
#Wheel4 = 3
#Sun = 1
#a3Dtext = 2
If InitEngine3D()
Add3DArchive(".", #PB_3DArchive_FileSystem)
; having to use this or suffer NO MESH/Textures is STUPID!
OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Test", #PB_Window_SystemMenu)
If OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 1, 0, 0) ; WTF??? why does this NOT work when removed... SLOPPY IDEAS
Add3DArchive("Data", #PB_3DArchive_FileSystem)
; having to use this or suffer NO MESH/Textures is STUPID!
LoadMesh (#WheelMesh , "wheel2.mesh")
LoadTexture(#WheelTexture, "Image1.jpg")
CopyMesh(#WheelMesh , #WheelMesh2 )
CopyMesh(#WheelMesh2 , #WheelMesh3 )
CopyMesh(#WheelMesh3 , #WheelMesh4 )
CreateMaterial(0, TextureID(#WheelTexture))
CreateEntity(#Wheel, MeshID(#WheelMesh), MaterialID(0))
EntityMaterial(#Wheel, MaterialID(0))
CreateEntity(#Wheel2, MeshID(#WheelMesh2), MaterialID(0))
EntityMaterial(#Wheel2, MaterialID(0))
CreateEntity(#Wheel3, MeshID(#WheelMesh3), MaterialID(0))
EntityMaterial(#Wheel3, MaterialID(0))
CreateEntity(#Wheel4, MeshID(#WheelMesh4), MaterialID(0))
EntityMaterial(#Wheel4, MaterialID(0))
EntityLocate(#Wheel, 11, 0, 0)
EntityLocate(#Wheel2, 0, 0, 0)
EntityLocate(#Wheel3, -11, 0, 0)
EntityLocate(#Wheel4, -22, 0, 0)
DisableMaterialLighting(0, 0) ; was (0,1)
MaterialAmbientColor(0, RGB(100, 100, 100))
MaterialSpecularColor(0, RGB(255, 255, 255))
;ScrollMaterial(0, -0.45, 0, 1) ; 0, 0.15, 0, 1)
CreateLight(#Sun, RGB(255,255,255), 0, 260, 0) ; 100.0, 0, 0)
LightSpecularColor(#Sun, RGB(128, 128, 128))
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0,0,0,97)
Repeat
Screen3DEvents()
ClearScreen(RGB(0, 0, 0))
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -1
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = 1
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -1
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = 1
Else
KeyY = 0
EndIf
If KeyboardPushed(#PB_Key_PageUp)
RollZ = 3
Else
RollZ = 0
EndIf
If KeyboardPushed(#PB_Key_Add)
Frame.f+0.005
EndIf
EndIf
RotateEntity(#Wheel, 1, 0, 0, #PB_Relative) ;#Wheel, 0, 1, 0, #PB_Relative)
xx = EntityX(#Wheel)
yy = EntityY(#Wheel)
zz = EntityZ(#Wheel)
RenderWorld()
;Screen3DStats() ; I have no idea what these are
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End