#0 

08-09-2009 14:07:15

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Salut je développe un game engine sur base Irrlicht que je connais depuis longtemps mais j'ai oublié pas mal de choses malheuresement.
Je voudrais que ma classe Joueur (contenant entre autres un node MD2), puisse rester collée sur le terrain définit à la création du perso. Pour cela j'ai une methode update() que je lance à chaque rendu. Elle récupère terrain->getHeight() et place l'axe Y du node à ce point.
Je fait bouger le node grace à un Animator Straight (ligne droite).
Le soucis est que quand je déplace le perso, il se place correctement quand je clique pour le déplacer, puis il n'est plus mis à jour et s'enfonce dans le terrain. Je penses que l'animator prend le pas sur l'update() mais ou placer correctement mon update pour que cela fonctionne??

Merci d'avance.


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#1 

08-09-2009 19:45:54

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Pourrais-tu donner le code de ta fonction update, cela permettrait peut-être de plus facilement cerner le soucis tongue


Force et sagesse...

Hors ligne


#2 

09-09-2009 02:06:35

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Code:

void chr::update() 
{
    if(node->getPosition() == target) 
    {
        action = ACTION_IDLE;
        node->setMD2Animation(scene::EMAT_STAND);

    }
    node->setPosition(vector3df(node->getPosition().X,
                                              sol->getHeight(node->getPosition().X,node->getPosition().Z),
                                              node->getPosition().Z));

}

elle est utilisé ici:

Code:

while(device->run())

{

    driver->beginScene(true, true, SColor(255,100,101,140));
    smgr->drawAll();
    guienv->drawAll();
        ply->update();
        driver->endScene();

}

Je comprends pas il y'a bien un moment ou on peut bouger le node sans que l'animator le replace sur sa route...
merci encore.

Dernière modification par TUpac (15-09-2009 20:16:51)


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#3 

09-09-2009 18:48:29

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Je n'utilise jamais les animator, enfin du moins pour ce qui est de définir des trajectoire.

Je ne sais pas dans quelle mesure le fait de repositionner ton node n'entre pas en coflit avec ce que fait l'animator.

Dans la mesure ou tu fait de la ligne droite, pourquoi ne pas coder ton petit truc à toi (plutôt simple). L'avantage est
que tu en aurais le controle et donc cela te poserait bien moins de soucis, non ?


Force et sagesse...

Hors ligne


#4 

10-09-2009 02:24:11

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Oui mais je veux que la durée du déplacement soit fiable et si je bouge le node à chaque frame, la vitesse risque de dépendre du FPS, je me trompe?


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#5 

10-09-2009 09:38:35

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

ça ne pose pas de soucis si tu travail avec le temps ( time elapsed )
il doit y avoir 2/3 sujet qui traine sur ça wink

Hors ligne


#6 

10-09-2009 15:09:03

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

merci Magun, j'ai effectivement trouvé un sujet ou il file un algo qui retourne time elapsed à multiplier par une valeur (speed) pour avoir la distance par frame. Ceci dit, les animators m'enlevaient une grosse épine du pied car je vais devoir faire mes calculs de trigo pour trouver le vecteur déplacement.
Mais ça sera mieux comme ça. J'esper juste que cet algo n'est pas trop gourmand.
merci encore.


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#7 

10-09-2009 18:46:09

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Rassure toi, bien ficelé, ce n'est si gourmant. Pense à certains jeux ou tu voix des centaines d'élément ce déplacer en même temps...

Et puis, dans la mesure ou l'on passe dans le coin, on sera là pour te sortir d'une éventuelle ornière smile


Force et sagesse...

Hors ligne


#8 

11-09-2009 09:07:54

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

Merci du soutien tmyke ! c'est gentil big_smile
c'est juste que les maths appliqués y'en faut pas trop pour mon ptit cerveau ^^


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

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
93 invités en ligne
Aucun membre connecté
RSS Feed