Voila enfait j'utilise setFrameloop qui joue les frames de mon animation en boucle mais le soucis c'est que je voudrais juste jouer l'animation une seule foi et qu'elle se réinitialise a la première frame. Malheureusement setEndFrame n'existe pas comment puis-je faire ?
Hors ligne
pour ça tu as un truc pour recupérer la frame en cour, du coup imaginons que tu as une animation de 100 frames. Si j'ai bien compris, tu veut jouer toutes les frames et quand tu arrive a la 100em l'animation revient a la 1er et y reste.
L'idée:
ps: il y a parfois des petits bug du genre il ne récupèrera jamais la frame 100, il s'arretera a 99 !! je n'ai jamais pus savoir si ça venait des models ou de Irrlicht, mais je préfère le souligné car je me rappel avoir perdu pas mal de temps sur ce truc là.
Bon courage.
Dernière modification par nabouill (11-02-2010 00:38:22)
Hors ligne
merci beaucoup !
tu me simplifie la vie j'étais entrein de chronométré mon animation et d'essayer de faire passer setAnimation à 0 speed au bout d'un certain temps mais bon c'est vraiment idiot mon idée !
Hors ligne
if(frameTemp == 100)
Pourquoi frameTemp si on déclare FrameEnCour ?
Cela ne fonctionne pas :
//on creer une variable pour récupérer la frame actuel
int frameEnCour = Nbras->getFrameNr();
////////////////////////////////////////////////////////////////////////////////
////////////////////////////// BOUCLE DE RENDU 3D///////////////////////////////
////////////////////////////////////////////////////////////////////////////////
while (device->run())
{
driver->beginScene(true,true,irr::video::SColor(0,200,200,200));
//on verifie si on est arrivé a la frame a la quel on souhaiterait que ça s'arrete
if(frameEnCour == 20)
{
//on bloque l'animation ou on veut
Nbras->setFrameLoop(1,1);
}
}
Le bras joue son animation sans s'arréter
sceneManager->drawAll ();
// gui->drawAll();
driver->endScene ();
}
device->drop ();
return 0;
}
Hors ligne
STP utilise les balise de code, ce serait plus lisible, sinon :
jonath313 :
Pourquoi frameTemp si on déclare FrameEnCour ?
Désolé, c'est mon copier coller de mes bout codes, frameTemp était en faite frameEnCour.
Aussi, je ne comprend pas bien ton code, moi je voyait plutot un truc du genre:
Il faut récupérer la frame dans ta boucle, quand tu fait "int frameEnCour = perso->getFrameNr();" frameEnCour est égale a ta frame a l'instant même ou elle se deroule.
Dernière modification par nabouill (11-02-2010 01:17:53)
Hors ligne