Impossible d'afficher n texte3D sur plusieurs entités
Publié : mar. 22/oct./2013 18:40
Bonjour.
Je n'arrive pas à mettre un Texte3D sur différentes entités.
Ce code fonctionneMais si je veux gérer un nombre d'entités indéterminés, je suis obligé de passer par une liste chainée.
Et là .... c'est le drame !!!! Le code suivant génére une erreur de compilation.Merci de vôtre aide 
Je n'arrive pas à mettre un Texte3D sur différentes entités.
Ce code fonctionne
Code : Tout sélectionner
Enumeration Window
#MainForm
EndEnumeration
Enumeration Entity
#Cube1
#Cube2
#Cube3
#Cube4
EndEnumeration
Enumeration Text3D
#T3D1
#T3D2
#T3D3
#T3D4
EndEnumeration
Enumeration Camera
#Camera
EndEnumeration
InitEngine3D()
InitKeyboard()
InitSprite()
InitMouse()
Add3DArchive(#PB_Compiler_Home+"Examples/3D/Data/fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()
OpenWindow(#MainForm, 0, 0, 1024, 768, "Texte 3D")
OpenWindowedScreen(WindowID(#MainForm),0,0,1024,768)
CreateEntity(#Cube1, MeshID(CreateCube(#PB_Any, 1)), #PB_Material_None, -3, 0, 0)
CreateText3D(#T3D1, Str(#Cube1), "BlueHighway-16", 0.3, RGBA(255, 0, 0, 255))
Text3DAlignment(#T3D1, #PB_Text3D_HorizontallyCentered)
AttachEntityObject(#Cube1, "", Text3DID(#T3D1))
MoveText3D(#T3D1, 0.5, 0.5, 0)
CreateEntity(#Cube2, MeshID(CreateCube(#PB_Any, 1)), #PB_Material_None, -1, 0, 0)
CreateText3D(#T3D2, Str(#Cube2), "BlueHighway-16", 0.3, RGBA(255, 0, 0, 255))
Text3DAlignment(#T3D2, #PB_Text3D_HorizontallyCentered)
AttachEntityObject(#Cube2, "", Text3DID(#T3D2))
MoveText3D(#T3D2, 0.5, 0.5, 0)
CreateEntity(#Cube3, MeshID(CreateCube(#PB_Any, 1)), #PB_Material_None, 1, 0, 0)
CreateText3D(#T3D3, Str(#Cube3), "BlueHighway-16", 0.3, RGBA(255, 0, 0, 255))
Text3DAlignment(#T3D3, #PB_Text3D_HorizontallyCentered)
AttachEntityObject(#Cube3, "", Text3DID(#T3D3))
MoveText3D(#T3D3, 0.5, 0.5, 0)
CreateEntity(#Cube4, MeshID(CreateCube(#PB_Any, 1)), #PB_Material_None, 3, 0, 0)
CreateText3D(#T3D4, Str(#Cube4), "BlueHighway-16", 0.3, RGBA(255, 0, 0, 255))
Text3DAlignment(#T3D4, #PB_Text3D_HorizontallyCentered)
AttachEntityObject(#Cube4, "", Text3DID(#T3D4))
MoveText3D(#T3D4, 0.5, 0.5, 0)
CreateCamera(#Camera, 0, 0, 100, 100)
While #True
Event = WindowEvent()
ExamineKeyboard()
If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
Break
EndIf
MoveCamera(#Camera, 0, 0, 10, #PB_Absolute)
CameraLookAt(#camera,0,0,0)
ClearScreen(RGB(0, 0, 0))
RenderWorld()
FlipBuffers()
Wend
Et là .... c'est le drame !!!! Le code suivant génére une erreur de compilation.
Code : Tout sélectionner
Enumeration
#MainForm
EndEnumeration
Enumeration Camera
#Camera
EndEnumeration
Structure User
Entity.i
Text3D.i
EndStructure
NewList Players.User()
InitEngine3D()
InitKeyboard()
InitSprite()
InitMouse()
Add3DArchive(#PB_Compiler_Home+"Examples/3D/Data/fonts", #PB_3DArchive_FileSystem)
Parse3DScripts()
OpenWindow(#MainForm, 0, 0, 1024, 768, "Texte 3D")
OpenWindowedScreen(WindowID(#MainForm),0 ,0 , 1024, 768)
For X=-3 To 3 Step 2
AddElement(Players())
Players()\Entity = CreateEntity(#PB_Any, MeshID(CreateCube(#PB_Any, 1)), #PB_Material_None, -X, 0, 0)
Players()\Text3D = CreateText3D(#PB_Any, Str(Players()\Entity), "BlueHighway-16", 0.3, RGBA(255, 0, 0, 255))
Text3DAlignment(Players()\Text3D, #PB_Text3D_HorizontallyCentered)
AttachEntityObject(Players()\Entity, "", Text3DID(Players()\Text3D))
MoveText3D(Players()\Text3D, 0.5, 0.5, 0)
Next
CreateCamera(#Camera, 0, 0, 100, 100)
While #True
Event = WindowEvent()
ExamineKeyboard()
If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
Break
EndIf
MoveCamera(#Camera, 0, 0, 10, #PB_Absolute)
CameraLookAt(#camera,0,0,0)
ClearScreen(RGB(0, 0, 0))
RenderWorld()
FlipBuffers()
Wend
