;
; ------------------------------------------------------------
;
; PureBasic - Text3D
;
; (c) Fantaisie Software
;
; ------------------------------------------------------------
;
; Инициализация трехмерного мира
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()
; Открытие окна
OpenWindow(0,0,0,1000,1000,"Texte 3D",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,1000,1000,1,0,0)
; Создание 3D мира
CreateSphere(0, 2)
CreateMaterial(0, LoadTexture(0, "clouds.jpg"))
CreateEntity(0, MeshID(0), MaterialID(0))
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 0, 0, 10, #PB_Absolute)
; Создание 3D текста
CreateText3D(0, FormatDate("%hh:%ii:%ss", Date())) ; Создание 3D текста
Text3DColor(0, RGBA(255, 0, 0, 255)) ; Цвет и прозрачность
Text3DAlignment(0, #PB_Text3D_HorizontallyCentered) ; Выравнивание текста
AttachEntityObject(0, "", Text3DID(0)) ; Обязательно связывать 3D-текст с сущностью (или узлом)
MoveText3D(0, 0.5, 1, 2) ; Положение 3D текста
ScaleText3D(0,0.8,0.2,0.5,#PB_Absolute) ; Размер 3D текста
; Управление окнами, клавиатурой и мышью
Repeat
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
ExamineKeyboard()
ExamineMouse()
If MouseDeltaX()>0
MoveEntity(noeud,0.5,0,0)
ElseIf MouseDeltaX()<0
MoveEntity(noeud,-0.5,0,0)
EndIf
If MouseDeltaY()>0
MoveEntity(noeud,0,-0.5,0)
ElseIf MouseDeltaY()<0
MoveEntity(noeud,0,0.5,0)
EndIf
If MouseButton(#PB_MouseButton_Left) <>0
End
EndIf
If MouseButton( #PB_MouseButton_Right) <>0
MoveEntity(noeud,0,0,0,#PB_Absolute)
EndIf
tiks = MouseWheel()
If tiks > 0
MoveEntity(noeud,0,0,1)
EndIf
If tiks < 0
MoveEntity(noeud,0,0,-1)
EndIf
If KeyboardPushed(#PB_Key_Escape)
quitter + 1
EndIf
If KeyboardPushed(#PB_Key_Space)
If rotation=1
rotation=0
Else
rotation=1
EndIf
EndIf
; Пробел = ON / OFF вращение Сущности с прикрепленным к нему 3D текстом
If rotation =1
RotateEntity(0, 1, 1, 1, #PB_Relative)
EndIf
; Обновление времени
Text3DCaption(0, FormatDate("%hh:%ii:%ss", Date()))
; Отображение сцены
StartDrawing(WindowOutput(0))
DrawText(0,5,"Мышь и клавиатура: пробел и колесо мыши")
DrawText(0,30,".: Esc или левый клик для выхода :.")
StopDrawing()
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quitter = 1
End