PureBasic
;
; ------------------------------------------------------------
;
;   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
�����