Bon pour le moment c'est simple Smiley donc voyons comment améliorer notre précédent programme... Ouvrez le Smiley et sauvez le sous le nom suivant : ODE_Exemple02_MultiCube.bb Nous allons simplifier la création des cubes et surtout faire en sorte de pouvoir les paramétrer. Pour des raisons de paresses évidentes Smiley je vais maintenant commenter les codes sources... Copiez les lignes suivantes et lisez bien les commentaires ! Code: ; ------------------------------------------------------ ; Chargement des fichiers necessaires ; ------------------------------------------------------ Include "Inc_BlitzODE.bb" Include "Inc_Camera.bb" Include "Inc_LiGht.bb" ; ----------------------------- ; Ouverture de l'ecran ; ----------------------------- Graphics3D 800, 600,32,2 SetBuffer BackBuffer() ; ---------------------------------------------- ; Initialisation camera et lumières ; ---------------------------------------------- Proc_CreateCamera() Proc_CreateLiGht() ; ---------------------- ; Creation du sol ; ---------------------- Plane = CreatePlane() EntityColor Plane, 100,100, 100 ; ------------------------------ ; Initialisation de ODE ; ------------------------------ Global ODE_Plane = True Global ODE_World = ODE_dWorldCreate(ODE_Plane ) ODE_dSetContactMode(dContactBounce + dContactSoftERP + dContactSoftCFM) ODE_dSetBOUNCE(0.1) ODE_dSetSOFT_ERP(1.5) ; Essayez 6.5 pour avoir un sol super rebondissant ODE_dSetSOFT_CFM(0.1) ; Essayez 3.2 pour rendre le sol moue (pour des effets d'eau par exemple) ; ----------------------------------------- ; Creation de plusieurs cubes ; ----------------------------------------- ZoneDiffusion=20 For I=1 To 160 Proc_CreateODECube(Rnd(-ZoneDiffusion,ZoneDiffusion),40,Rnd(-ZoneDiffusion,ZoneDiffusion),45,45,45,2,2,2,Rnd(1,15),Rnd(255),Rnd(255),Rnd(255)) Next ; ------------------------- ; Boucle principale ; ------------------------- While Not KeyHit(1) ; ------------------------------------------------- ; Rafraichissement du monde ODE ; ------------------------------------------------- ODE_dWorldQuickStep 0.2 ODE_UpdateGeoms() UpdateWorld RenderWorld ; ------------------------ ; Camera freelook ; ------------------------ Proc_Freelook(Camera_Ent,1.2,0.05) Flip Wend ODE_dCloseODE() End ; -------------------------------------------- ; Permet de créer un cube ODE ; -------------------------------------------- Function Proc_CreateODECube(Px#,Py#,Pz#,Rx#,Ry#,Rz#,Sx#,Sy#,Sz#,Mass#,Red,Green,Blue) G.TODEGeom = New TODEGeom Gbody = ODE_dBodyCreate() GGeom = ODE_dCreateBox(ODE_World,Sx#,Sy#,Sz#,Mass#) ODE_dGeomSetBody GGeom, Gbody ODE_dBodySetPosition(Gbody, Px#,Py#,Pz#) ODE_dBodySetRotation(Gbody, Rx#,Ry#,Rz#) Gmesh = CreateCube() EntityColor Gmesh, Red,Green,Blue EntityShininess Gmesh, 0.7 ODE_UpdateGeoms() End Function Journalisée "Je crois au moment. S'il n'y a pas le moment, à ce moment-là, il faut arriver à ce moment-là, au moment qu'on veut." JC Vandamme "En 1 semaine, t'as réussit à pourrir quasiment tous les topics et en déterrer des tellement vieux, que même un nécrophile y mettrait pas sa bite." Wako pedro37 Invité Re : Tutorial ODE n°03 : Bon la suite !!! « Répondre #1 le: 28 Octobre 2005 à 15:48:34 » lol ça a pas l'air compliqué comme ça Smiley simplement super Smiley (cest cool je voulais jsutement faire une simulation de trampoline :lol:)