; ; ------------------------------------------------------------ ; ; PureBasic - Ribbon ; ; (c) Fantaisie Software ; ; ------------------------------------------------------------ ; IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb" Define yaw.f, X.f, Y.f, Z.f, FOV.f, Timer.i If InitEngine3D() Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #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() ; Земля (Ground) ; GetScriptMaterial(0, "Scene/GroundBlend") CreatePlane(0, 10000, 10000, 100, 100, 50, 50) CreateEntity(0, MeshID(0), MaterialID(0)) ; Узел (Node) для Шлейфа и билбордов ; CreateNode(0, 0, 500, 0) ; Узел (Node) для Бликов объектива ; CreateNode(1, 110, 500, 0) ;Шлейф (Ribbon) ; GetScriptMaterial(1, "Scene/RibbonTrail") CreateRibbonEffect(0, MaterialID(1), 3, 80, 1750) RibbonEffectColor(0, 0, RGBA(255, 0, 0, 255), RGBA(0, 0, 255, 255)) RibbonEffectWidth(0, 0, 10, 3) AttachRibbonEffect(0, NodeID(0)) ; билборд ; GetScriptMaterial(2, "Scene/burst") CreateBillboardGroup(0, MaterialID(2), 512, 512) AddBillboard(0, 0, 0, 0) AttachNodeObject(0, BillboardGroupID(bGrp)) ; Камера ; CreateCamera(0, 0, 0, 100, 100) MoveCamera(0, 2000, 100, 2000, #PB_Absolute) CameraLookAt(0, 0, 1500, 0) CameraFOV(0, 60) ; блики объектива для этой камеры ; CreateLensFlareEffect(3, CameraID(0), NodeID(1), 10, 20, MaterialID(2), MaterialID(2), MaterialID(2)) ; Скайбокс (SkyBox) ; SkyBox("desert07.jpg") Repeat Screen3DEvents() If Timer < ElapsedMilliseconds() Timer = ElapsedMilliseconds() + 5 yaw + 0.1 EndIf ;Шлейф X = 1000 + 500 * Cos(ElapsedMilliseconds() / 250) Y = 1500 + 750 * Cos(ElapsedMilliseconds() / 350) Z = 500 + 250 * Cos(ElapsedMilliseconds() / 750) MoveNode(0, X, Y, Z, #PB_Absolute) ;Камера FOV = 60 - 30 * Cos(ElapsedMilliseconds() / 2500) RotateCamera(0, 0, yaw, 0) CameraFOV(0, FOV) CameraLookAt(0, X, Y, Z) RenderWorld() Screen3DStats() FlipBuffers() Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1 EndIf Else MessageRequester("Ошибка", "3D Движок не может быть инициализирован", 0) EndIf End