Bonjour à tous, je débute sous irrlicht.NET CP, et, après avoir regardé les tutoriaux, je me suis décidé à tenter de faire circuler un mesh sur la map, selon un jeu de collision.
Or, je rencontre deux problèmes : le premier étant que je ne trouve pas comment animer le mesh pendant qu'il se déplace, j'ai bien tenté
case KeyCode.Key_Z: { anms.Position = en_avant(v,r); anms.SetFrameLoop(160,180); } return true;
Mais le mesh se fige dans la première frame de l'animation sans aller plus loin... Je suppose qu'il faut caler "anms.SetFrameLoop(160,180); " ailleurs, mais de là à savoir où...
De plus, j'ai tenté d'insérer un système de collisions entre mon md2 et la map, mais celui-ci ne semble pas marcher : il reste à quelques mêtres du sol, et ne peut pas se déplacer. Pourtant, je lui ai mis des valeurs minimales au apramètre ellipsoide radius...
Voilà le bout de code qui pose problème :
// On initialise la map device.FileSystem.AddZipFileArchive("map-20kdm2.pk3",true,true); AnimatedMesh q3levelmesh = smgr.GetMesh("20kdm2.bsp"); SceneNode q3node = null; if (q3levelmesh != null) q3node = smgr.AddOctTreeSceneNode(q3levelmesh.GetMesh(0), smgr.RootSceneNode, -1, 128); TriangleSelector selector = null; if (q3node != null) { q3node.Position = new vector3d(-1370, -130, -1400); selector = smgr.CreateOctTreeTriangleSelector( q3levelmesh.GetMesh(0), q3node, 128); q3node.TriangleSelector=selector; } // On initialise le personnage anms = smgr.AddAnimatedMeshSceneNode(smgr.GetMesh("tris.md2")); anms.Position=new vector3d(0,1500, 0); anms.SetMaterialFlag(MaterialFlag.Lighting,false); anms.SetFrameLoop(0,159); anms.AnimationSpeed=30; anms.Rotation=new vector3d(0,180,0); anms.SetMaterialTexture(0,driver.GetTexture("ultra.pcx")); Animator anim = smgr.CreateCollisionResponseAnimator( selector, anms, new vector3d(1, 2, 1), new vector3d(0, -30, 0), new vector3d(0, 10, 0), 0); anms.AddAnimator(anim);
PS : j'ai également un gros problème... je comprend très mal le C++, donc c'est dur de trouver une solution...
Dernière modification par Krankmann (07-09-2008 16:02:10)
Hors ligne