Page 1 sur 1

Balançoire

Publié : mar. 18/oct./2011 0:35
par falsam
Version PureBasic 4.60 RC2 uniquement
Merci Fred d'avoir améliorer le moteur Physique :)
Code sans les textures.

Code : Tout sélectionner

EnableExplicit

Enumeration 10
  #Camera
  #Light
  
  #Cube
  #Cube_Mesh
  
  #Cylindre
  #Cylindre_Mesh
  
  #Sphere
  #Sphere_Mesh
  
  #Ground
  #Ground_Mesh
EndEnumeration


Global Entity.i, RotX.i, RotY.i, RotZ, i.f, Sense.s="Right"
If InitEngine3D()
  InitSprite()
  InitKeyboard()
  InitMouse()

  OpenWindow(0,0,0,800,600,"3d",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  OpenWindowedScreen(WindowID(0),0,0,800,600,0,0,0)

  WorldShadows(#PB_Shadow_Additive)

  EnableWorldPhysics(1) 

  CreateCamera(#Camera,0,0,800,600)
  CameraLocate(#Camera,5,5,-20)
  CameraLookAt(#Camera,5,5,0)
  CreateLight(#Light,RGB(255,255,255),0,50,-20)

  CreateCylinder(#Cylindre_Mesh, 1, 5) 
  CreateEntity(#Cylindre, MeshID(#Cylindre_Mesh), #PB_Material_None)
  EntityLocate(#Cylindre, 1, 1,0)
  RotateEntity(#Cylindre, 90, 0, 90)

  CreateCube(#Cube_Mesh, 1)
  CreateEntity(#Cube, MeshID(#cube_Mesh), #PB_Material_None)
  ResizeEntity(#Cube, 15, 0.2, 5)
  EntityLocate(#Cube, 1, 2.2, 0)
  RotateEntity(#Cube, 0, 0, -18)
  EntityPhysicBody(#Cube, #PB_Entity_StaticBody, 2, 0, 0)

  CreateSphere(#Sphere_Mesh, 1) 
  CreateEntity(#Sphere, MeshID(#Sphere_Mesh), #PB_Material_None)
  EntityLocate(#Sphere, -1, 6,0)
  EntityPhysicBody(#Sphere, #PB_Entity_BoxBody, 1, 0, 1)

  CreateCube(#Ground_Mesh, 20)
  CreateEntity(#Ground,MeshID(#Ground_Mesh), #PB_Material_None)
  EntityLocate(#Ground,5,-10,-5)
  EntityPhysicBody(#Ground, #PB_Entity_StaticBody, 1, 0, 0)

  Repeat
   RenderWorld()
  
    ;Balançoire
   If i<18 And Sense="Right"
     i + 0.3
   Else
     Sense="Left"
   EndIf
  
  
   If i>-18 And Sense="Left"
    i - 0.3
   Else
    Sense="Right"
   EndIf
   RotateEntity(#Cube, 0, 0, i)
   
   If ExamineMouse()
     RotY = -MouseDeltaX()/10 
     RotX = -MouseDeltaY()/10  
   EndIf
       
   RotateCamera(#Camera, RotX, RotY, RotZ, #PB_Relative)
  
   FlipBuffers()
  
   ExamineKeyboard() 
   If KeyboardPushed(#PB_Key_Escape)
     End
   EndIf
  
 ForEver
Else
  MessageRequester("Information", "Impossible d'initialiser le moteur 3D")
EndIf
 

Re: Balançoire

Publié : mar. 18/oct./2011 20:10
par falsam
Ce code fonctionne quand on l’exécute depuis l'éditeur, par contre il ne fonctionne plus quand je fais un exécutable. (PB 4.60 RC2)

Est ce que Engine3D.dll doit être présent avec l’exécutable ?

Re: Balançoire

Publié : mar. 18/oct./2011 20:14
par falsam
Toujours pour ce même code j'a ice message dans le fichier texte qu'il génére ogre.txt

Code : Tout sélectionner

OGRE EXCEPTION(6:FileNotFoundException): 'plugins.cfg' file not found! in ConfigFile::load at OgreConfigFile.cpp (line 84)
21:04:27: plugins.cfg not found, automatic plugin loading disabled.

Re: Balançoire

Publié : mar. 18/oct./2011 22:49
par falsam
falsam a écrit :Est ce que Engine3D.dll doit être présent avec l’exécutable ?
Il doit être présent, mais il faut faire attention de ne pas mettre celui de la version 4.51 !!!

PS : Vous pouvez prendre une copie de Engine3D.dll dans le dossier Compilers qui se trouve dans le dossier d'installation de PureBasic.