Page 1 sur 1

Texte 3D qui ne s'attache pas à une entité

Publié : jeu. 11/juil./2013 20:51
par falsam
Je n'utilisais pas les fonctionnalités de Text3D jusqu'à présent. J'ai donc regardé l'exemple livré avec Pure Basic et je l'ai reproduit. Mais voila ..... ça ne fonctionne pas. Impossible de l'attacher à une entité.

Un code épuré pour accompagné mon souci. J’espère que vous allez pouvoir m'aider. Merci.

Code : Tout sélectionner

Enumeration
  #Cube
  #Text
EndEnumeration

InitEngine3D()
InitKeyboard()
InitSprite()

window = OpenWindow(#PB_Any,0,0,1024,768,"Rotation d'un cube")
OpenWindowedScreen(WindowID(window),0,0,1024,768)

; Mesh
Cube_Mesh = CreateCube(#PB_Any, 2) 
Ground_Mesh = CreatePlane(#PB_Any, 20, 20, 3, 6, 6, 6)

; Materiel
Texture = CreateTexture(#PB_Any,512,512)
StartDrawing(TextureOutput(Texture))
Box(0,0,512,512,RGB(0, 0, 0))
Box(1,1,510,510,RGB(255, 216, 0))
StopDrawing()
Material = CreateMaterial(#PB_Any,TextureID(texture))

; Création du sol 
Ground = CreateEntity(#PB_Any, MeshID(Ground_Mesh), MaterialID(Material), 0, 0, 0)
EntityPhysicBody(Ground, #PB_Entity_StaticBody, 2, 0, 1)


;
; Un cube
CreateEntity(#Cube, MeshID(Cube_Mesh), MaterialID(Material), 0, 2, 0)


CreateText3D(#Text, "Hello world")
Text3DColor(#text, RGBA(255, 0, 0, 255))
Text3DAlignment(#Text, #PB_Text3D_HorizontallyCentered)
AttachEntityObject(#Cube, "", Text3DID(0))
MoveText3D(#Text, 0, 3, 0)

;
;Lumiere et ombre
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
WorldShadows(#PB_Shadow_Additive)

;
; Une camera 
Camera = CreateCamera(#PB_Any,0,0,100,100)

While #True
  
  Event = WindowEvent()
    
  If ExamineKeyboard()    
    If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
      Break
    EndIf  
    
    If KeyboardPushed(#PB_Key_Space)
    EndIf
    
  EndIf
    
  MoveCamera(Camera, 4, 4 , 15, #PB_Absolute)
  
  CameraLookAt(camera,0,0,0)
  
  ; Affiche le rendu de la scène
  ClearScreen(RGB(0, 0, 0))
  RenderWorld()
  FlipBuffers()
Wend

Re: Texte 3D qui ne s'attache pas à une entité

Publié : jeu. 11/juil./2013 21:41
par comtois
il faut ajouter

Code : Tout sélectionner

  Add3DArchive("Data/fonts", #PB_3DArchive_FileSystem)
  Parse3DScripts()

Remplace ça

Code : Tout sélectionner

AttachEntityObject(#Cube, "", Text3DID(0))
par ça

Code : Tout sélectionner

AttachEntityObject(#Cube, "", Text3DID(#Text))
et ça devrait fonctionner

Re: Texte 3D qui ne s'attache pas à une entité

Publié : jeu. 11/juil./2013 22:07
par falsam
Comtois le 3eme oeil quand tout va mal :) Merci à toi. Ça fonctionne.

Re: Texte 3D qui ne s'attache pas à une entité

Publié : jeu. 11/juil./2013 22:42
par SPH
Heureusement que Comtois est la. Qu'est ce qu'on ferait sans lui... :?

Re: Texte 3D qui ne s'attache pas à une entité

Publié : ven. 12/juil./2013 23:57
par SPH
Apres verification, ca ne marche pas :

Code : Tout sélectionner

Enumeration
  #Cube
  #Text
EndEnumeration

InitEngine3D()
InitKeyboard()
InitSprite()
Add3DArchive("Data/fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()

window = OpenWindow(#PB_Any,0,0,1024,768,"Rotation d'un cube")
OpenWindowedScreen(WindowID(window),0,0,1024,768)

; Mesh
Cube_Mesh = CreateCube(#PB_Any, 2) 
Ground_Mesh = CreatePlane(#PB_Any, 20, 20, 3, 6, 6, 6)

; Materiel
Texture = CreateTexture(#PB_Any,512,512)
StartDrawing(TextureOutput(Texture))
Box(0,0,512,512,RGB(0, 0, 0))
Box(1,1,510,510,RGB(255, 216, 0))
StopDrawing()
Material = CreateMaterial(#PB_Any,TextureID(texture))

; Création du sol 
Ground = CreateEntity(#PB_Any, MeshID(Ground_Mesh), MaterialID(Material), 0, 0, 0)
EntityPhysicBody(Ground, #PB_Entity_StaticBody, 2, 0, 1)


;
; Un cube
CreateEntity(#Cube, MeshID(Cube_Mesh), MaterialID(Material), 0, 2, 0)


CreateText3D(#Text, "Hello world")
Text3DColor(#text, RGBA(255, 0, 0, 255))
Text3DAlignment(#Text, #PB_Text3D_HorizontallyCentered)
AttachEntityObject(#Cube, "", Text3DID(#Text))
MoveText3D(#Text, 0, 3, 0)

;
;Lumiere et ombre
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
WorldShadows(#PB_Shadow_Additive)

;
; Une camera 
Camera = CreateCamera(#PB_Any,0,0,100,100)

While #True
  
  Event = WindowEvent()
    
  If ExamineKeyboard()    
    If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
      Break
    EndIf  
    
    If KeyboardPushed(#PB_Key_Space)
    EndIf
    
  EndIf
    
  MoveCamera(Camera, 4, 4 , 15, #PB_Absolute)
  
  CameraLookAt(camera,0,0,0)
  
  ; Affiche le rendu de la scène
  ClearScreen(RGB(0, 0, 0))
  RenderWorld()
  FlipBuffers()
Wend

Re: Texte 3D qui ne s'attache pas à une entité

Publié : sam. 13/juil./2013 0:05
par falsam
Copie le dossier \font des exemples 3D dans ton dossier Data
Les exemples 3D se trouvent dans le dossier d'installation de Pure Basic.
j'ai testé ton code. Il fonctionne très bien.

Re: Texte 3D qui ne s'attache pas à une entité

Publié : sam. 13/juil./2013 0:26
par SPH
falsam a écrit :Copie le dossier \font des exemples 3D dans ton dossier Data
Les exemples 3D se trouvent dans le dossier d'installation de Pure Basic.
j'ai testé ton code. Il fonctionne très bien.
dans mon dossier Data qui viens de ou ?

Re: Texte 3D qui ne s'attache pas à une entité

Publié : sam. 13/juil./2013 0:30
par falsam
SPH a écrit :dans mon dossier Data qui viens de ou ?
Dans le dossier ou se trouve ton code affichant ce texte 3D, tu vas devoir créer un dossier que tu nommeras data et dans lequel tu copieras ton dossier font que tu récupères dans les exemples 3D du dossier d'installation de Pure Basic.

Re: Texte 3D qui ne s'attache pas à une entité

Publié : sam. 13/juil./2013 8:20
par SPH
Ok ca marche :idea:

Re: Texte 3D qui ne s'attache pas à une entité

Publié : sam. 13/juil./2013 8:51
par raven
bonjour falsam,
c'a fonctionne aussi chez moi.