Code: Select all
Define.l Event
Define.f NodeSpeed, RotY
InitEngine3D()
InitKeyboard()
InitSprite()
InitMouse()
Window = OpenWindow(#PB_Any, 0,0,1024,768, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(Window),0,0,1024,768,0, 0, 0)
KeyboardMode(#PB_Keyboard_International)
;Ambiance
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
;Camera
Camera = CreateCamera(#PB_Any,0,0,100,100)
CameraBackColor(Camera, RGB(145, 182, 201))
MoveCamera(Camera, 2, 5, 10, #PB_Absolute)
CameraLookAt(Camera, 0,0,0)
;Ground
CreateEntity(#PB_Any, MeshID(CreatePlane(#PB_Any, 40, 40, 1, 1, 1, 1)), #PB_Material_None)
;Entity & Node
Node = CreateNode(#PB_Any)
Entity = CreateEntity(#PB_Any, MeshID(CreateCube(#PB_Any, 1)), #PB_Material_None, 0, 0.50, 0)
AttachNodeObject(Node, EntityID(Entity))
Entity = CreateEntity(#PB_Any, MeshID(CreateCylinder(#PB_Any, 0.02, 2)), #PB_Material_None, 0, 1, 0)
AttachNodeObject(Node, EntityID(Entity))
Entity = CreateEntity(#PB_Any, MeshID(CreateSphere(#PB_Any, 0.5)), #PB_Material_None, 0, 2, 0)
AttachNodeObject(Node, EntityID(Entity))
Repeat
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
If ExamineKeyboard()
If KeyboardPushed (#PB_Key_Escape)
Break
EndIf
If KeyboardPushed (#PB_Key_Up)
NodeSpeed = -0.1
ElseIf KeyboardPushed (#PB_Key_Down)
NodeSpeed = 0.1
Else
NodeSpeed = 0
EndIf
If KeyboardPushed (#PB_Key_Left)
RotY = 1.5
ElseIf KeyboardPushed (#PB_Key_Right)
RotY = -1.5
Else
RotY = 0
EndIf
EndIf
RotateNode(Node, 0, RotY, 0, #PB_Relative)
MoveNode(Node, 0, 0, NodeSpeed, #PB_Absolute|#PB_Local)
;Uncomment / Comment this line :)
;CameraFollow(Camera, NodeID(Node), -180, NodeY(Node)+2, 6, 0.05, 0.05, #True)
RenderWorld(80)
FlipBuffers()
ForEver
