; ; ------------------------------------------------------------ ; ; PureBasic - EntityBoundingBox ; ; (c) Fantaisie Software ; ; ------------------------------------------------------------ ; ;Speed animation = PageUp and PageDown IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb" Define.f KeyX, KeyY, MouseX, MouseY, Speed = 0.3 Define.f x1, y1, z1, x2, y2, z2 Define Color = RGB(255, 0, 0) If InitEngine3D() Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem) Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models", #PB_3DArchive_FileSystem) Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts", #PB_3DArchive_FileSystem) Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/desert.zip", #PB_3DArchive_Zip) Parse3DScripts() InitSprite() InitKeyboard() InitMouse() If Screen3DRequester() ; Сущность (Entity) ; CreateEntity(1, LoadMesh(1, "robot.mesh"), #PB_Material_None) ; Анимация ; StartEntityAnimation(1, "Walk", #PB_EntityAnimation_Manual) ; Скайбокс (SkyBox) ; SkyBox("Desert07.jpg") ; Камера ; CreateCamera(0, 0, 0, 100, 100) MoveCamera(0, 50, 100, 80, #PB_Absolute) CameraLookAt(0, EntityX(1), EntityY(1) + 40, EntityZ(1)) CreateLight(0, RGB(255, 255, 255), -40, 100, 80) AmbientColor(RGB(80, 80, 80)) KeyboardMode(#PB_Keyboard_International) Repeat Screen3DEvents() If ExamineMouse() MouseX = -MouseDeltaX()/10 MouseY = -MouseDeltaY()/10 EndIf 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) And Speed < 2.0 Speed + 0.05 ElseIf KeyboardPushed(#PB_Key_PageDown) And Speed > 0.1 Speed - 0.05 EndIf EndIf AddEntityAnimationTime(1, "Walk", TimeSinceLastFrame * Speed) RotateCamera(0, MouseY, MouseX, 0, #PB_Relative) MoveCamera (0, KeyX, 0, KeyY) TimeSinceLastFrame = RenderWorld() RotateEntity(1, 0, 1, 0, #PB_Relative) ; Ограничительная коробка (BoudingBox) x1 = EntityBoundingBox(1, #PB_Entity_MinBoundingBoxX) y1 = EntityBoundingBox(1, #PB_Entity_MinBoundingBoxY) z1 = EntityBoundingBox(1, #PB_Entity_MinBoundingBoxZ) x2 = EntityBoundingBox(1, #PB_Entity_MaxBoundingBoxX) y2 = EntityBoundingBox(1, #PB_Entity_MaxBoundingBoxY) z2 = EntityBoundingBox(1, #PB_Entity_MaxBoundingBoxZ) ; Низ CreateLine3D(10, x1, y1, z1, Color, x2, y1, z1, Color) CreateLine3D(11, x2, y1, z1, Color, x2, y1, z2, Color) CreateLine3D(12, x2, y1, z2, Color, x1, y1, z2, Color) CreateLine3D(13, x1, y1, z2, Color, x1, y1, z1, Color) ; Верх CreateLine3D(14, x1, y2, z1, Color, x2, y2, z1, Color) CreateLine3D(15, x2, y2, z1, Color, x2, y2, z2, Color) CreateLine3D(16, x2, y2, z2, Color, x1, y2, z2, Color) CreateLine3D(17, x1, y2, z2, Color, x1, y2, z1, Color) ; Край CreateLine3D(18, x1, y1, z1, Color, x1, y2, z1, Color) CreateLine3D(19, x2, y1, z1, Color, x2, y2, z1, Color) CreateLine3D(20, x2, y1, z2, Color, x2, y2, z2, Color) CreateLine3D(21, x1, y1, z2, Color, x1, y2, z2, Color) FlipBuffers() Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1 EndIf Else MessageRequester("Ошибка", "3D Движок не может быть инициализирован",0) EndIf End