; ; ------------------------------------------------------------ ; ; PureBasic - Camera ; ; (c) 2002 - Fantaisie Software ; ; ------------------------------------------------------------ ; #CameraSpeed = 10 IncludeFile "Screen3DRequester.pb" DefType.f KeyX, KeyY, MouseX, MouseY If InitEngine3D() Add3DArchive("Data\", #PB_3DArchive_FileSystem) InitSprite() InitKeyboard() InitMouse() If Screen3DRequester() AmbientColor(RGB(0,200,0)) ; Green 'HUD' like color CreateMaterial(0, LoadTexture(0, "r2skin.jpg")) CreateEntity(0, LoadMesh(0, "Robot.mesh"), MaterialID(0)) AnimateEntity(0, "Walk") CreateCamera(0, 0, 0, 100, 50) ; Front camera CameraLocate(0,0,0,100) CreateCamera(1, 0, 50, 100, 50) ; Back camera CameraLocate(1,0,0,-100) RotateCamera(1,180,0,0) CameraRenderMode(1, #PB_Camera_Plot) ; Wireframe for this camera Repeat Screen3DEvents() ClearScreen(0, 0, 0) If ExamineKeyboard() If KeyboardPushed(#PB_Key_Left) KeyX = -#CameraSpeed ElseIf KeyboardPushed(#PB_Key_Right) KeyX = #CameraSpeed Else KeyX = 0 EndIf If KeyboardPushed(#PB_Key_Up) KeyY = -#CameraSpeed ElseIf KeyboardPushed(#PB_Key_Down) KeyY = #CameraSpeed Else KeyY = 0 EndIf EndIf If ExamineMouse() MouseX = -(MouseDeltaX()/10)*#CameraSpeed/2 MouseY = -(MouseDeltaY()/10)*#CameraSpeed/2 EndIf RotateEntity(0, 1, 0, 0) RotateCamera(0, MouseX, MouseY, RollZ) MoveCamera (0, KeyX, 0, KeyY) RotateCamera(1, MouseX, MouseY, RollZ) MoveCamera (1, KeyX, 0, KeyY) RenderWorld() Screen3DStats() FlipBuffers() Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1 EndIf Else MessageRequester("Error", "The 3D Engine can't be initialized",0) EndIf End ; ExecutableFormat=Windows ; EOF