#0 

07-09-2008 16:01:29

Krankmann
Petit nouveau
Date d'inscription: 07-09-2008
Messages: 2

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é

Code:

 
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 :

Code:

            // 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


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
31 invités en ligne
Aucun membre connecté
RSS Feed