Balançoire

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Balançoire

Message 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
 
Dernière modification par falsam le mar. 18/oct./2011 20:22, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Balançoire

Message 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 ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Balançoire

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Balançoire

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre