PureBasic

Forums PureBasic
Nous sommes le Dim 22/Juil/2018 0:03

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 
Auteur Message
 Sujet du message: Pendule double 3D
MessagePosté: Jeu 05/Juil/2018 20:44 
Hors ligne

Inscription: Mer 21/Jan/2004 17:48
Messages: 5142
une adaptation du code de Fig (voir ici) avec la lib 3D de PB. Ici c'est le moteur physique qui fait le boulot pour l'animation des pendules.

Code:
Structure Vector3
  x.f
  y.f
  z.f
EndStructure

IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"

If InitEngine3D()

  InitSprite()
  InitKeyboard()
  InitMouse()

  If Screen3DRequester()
    Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
    Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts" , #PB_3DArchive_FileSystem)
    Parse3DScripts()
   
    ; First create materials
    ;
    CreateMaterial(0, LoadTexture(0, "Wood.jpg"))
    CreateMaterial(1, LoadTexture(1, "Dirt.jpg"))
    GetScriptMaterial(2, "Examples/LightRibbonTrail")
   
    ; Meshes
    ;
    CreateCube(0, 1)
    CreateSphere(1, 0.5)
   
    ; Entities
    ;
    CreateEntity(0, MeshID(0), MaterialID(0), 0,  0, 0)
    CreateEntity(1, MeshID(0), MaterialID(0), 0, -5.1, 0)
    CreateEntity(2, MeshID(1), MaterialID(1), 0, -5.1, 0)
    CreateEntity(3, MeshID(1), MaterialID(1), 0, 0, 0)
   
    ScaleEntity(0,1,10,1)
    ScaleEntity(1,1,10,1)   
   
    ;Ribbon
   
    CreateRibbonEffect(0, MaterialID(2), 1, 2800, 180)
    RibbonEffectColor(0, 0, RGBA(0, 255*0.8, 255*0.8, 255), RGBA(0, 255, 0, 5))
    RibbonEffectWidth(0, 0, 0.5, 0.2)
    AttachRibbonEffect(0, EntityParentNode(3))
   
    ; Bodies
    ;
    CreateEntityBody(0, #PB_Entity_BoxBody   , 1.0)
    CreateEntityBody(1, #PB_Entity_BoxBody   , 1.0)
    CreateEntityBody(2, #PB_Entity_SphereBody, 1.0)
    CreateEntityBody(3, #PB_Entity_SphereBody, 0.00001)   
   
    ; PointJoint
    ;
    PointJoint(0, EntityID(0), 0, 5.5, 0)
    PointJoint(1, EntityID(0),  0, -5.5, 0, EntityID(2), 0, 0, 0)
    PointJoint(2, EntityID(1),  0, 5.5, 0, EntityID(2), 0, 0, 0)
    PointJoint(3, EntityID(1),  0, -5.5, 0, EntityID(3), 0, 0, 0)   
   
   
    For i=0 To 3
      EntityLinearFactor(i, 1, 1, 0)
    Next
   
   
    ; Camera
    ;
    CreateCamera(0, 0, 0, 100, 100)
    MoveCamera(0, 0, 0, 50, #PB_Absolute)
   
    ;- Light
    ;
    AmbientColor(RGB(25, 25, 25))
    CreateLight(0, RGB(215, 190, 40), 75, 75, 75)
   
    ; GO
    ;
    ApplyEntityImpulse(1,  10, 0, 0)
   
    Repeat
      Screen3DEvents()
      ExamineKeyboard()
     
      RenderWorld()
     
      Screen3DStats()
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf

Else
  MessageRequester("Error", "The 3D Engine can't be initialized", 0)
EndIf

End

_________________
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.


Dernière édition par comtois le Dim 15/Juil/2018 10:26, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Pendule double 3D
MessagePosté: Jeu 05/Juil/2018 22:01 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 11/Fév/2005 17:34
Messages: 4115
Localisation: Arras, France
Belle démo pour la prochaine version ;)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Pendule double 3D
MessagePosté: Ven 06/Juil/2018 19:13 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6513
Localisation: Isere
Waouuuhhh !!! COMTOIS ça envoie du bois ton adaptation 8) :D

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye