Positionnement de camera
Publié : ven. 31/mars/2023 15:58
Salut,
J'ai un code 3D qui affiche des boxes en ligne sur le coté gauche et en horizontale en bas.
Hors, ma camera est mal tournée. Les boxes du bas apparaissent en haut.
Voici le code :
J'ai un code 3D qui affiche des boxes en ligne sur le coté gauche et en horizontale en bas.
Hors, ma camera est mal tournée. Les boxes du bas apparaissent en haut.
Voici le code :
Code : Tout sélectionner
EnableExplicit
Define Dim camera(2000),Dim light(2000),Dim mesh(2000),Dim material(2000),Dim entity(2000)
; Define camera, light, mesh, material, entity
; Define camera2, light2, mesh2, material2, entity2
Define xx.f, yy.f, zz.f, xx2.f, yy2.f, zz2.f
; Define Dim create.l(100)
Define i.l,u.l,n.l,x.l,y.l,taille_x,taille_y,piece
Define b.b
Declare CreateSquare(Mesh, Size.f)
ExamineDesktops()
InitEngine3D(#PB_Engine3D_DebugLog) : InitSprite() : InitKeyboard() : InitMouse()
OpenScreen(DesktopWidth(0), DesktopHeight(0), 32, "3D de base")
Add3DArchive(#PB_Compiler_Home + "examples\3D\Data\Textures", #PB_3DArchive_FileSystem)
; Camera
camera(0) = CreateCamera(#PB_Any, 0, 0, 100, 100)
MoveCamera(camera(0), 8, 6, 40)
CameraLookAt(camera(0), 0, 0, 0)
RotateCamera(camera(0), 0 ,0 ,0)
; Si pas de ciel, couleur de fond
CameraBackColor(camera(0), RGB(184, 134, 11))
; Lumiere
light(0) = CreateLight(#PB_Any, RGB(255, 255, 255), -100, 100, 0)
; Création du premier cube
taille_x=8
taille_y=16
Dim tableau.b(taille_x,taille_y)
i=0
For y=0 To taille_y
For x=0 To taille_x
If x=0 Or y=taille_y ;Or x=taille_x
tableau(x,y)=1
mesh(i) = CreateCube(#PB_Any, 1)
material(i) = CreateMaterial(#PB_Any, TextureID(LoadTexture(#PB_Any, "caisse.png")))
entity(i) = CreateEntity(#PB_Any, MeshID(mesh(i)), MaterialID(material(i)))
; On redimentionne le cube.
ScaleEntity(entity(i), 1, 1, 0.1)
MoveEntity(entity(i), x, y, 0)
i+1
EndIf
Next
Next
For u=1 To i-1
AttachEntityObject(entity(0), "", EntityID(entity(u)))
Next
; Boucle 3D
Repeat
ExamineKeyboard()
ExamineMouse()
If KeyboardReleased(#PB_Key_G) And IsEntity(Entity(0))
CreateEntityBody(Entity(0), #PB_Entity_BoxBody, -0.25, 0, 0)
EndIf
If KeyboardReleased(#PB_Key_K) And IsEntity(Entity(0))
FreeEntity(Entity(0))
EndIf
;MoveEntity(entity(1), xx, 0, 0)
RenderWorld()
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape) Or MouseButton(#PB_MouseButton_Middle)
End