Bonjour,
je travail avec qt+ogre

j'ai fait une fonction qui fait animation(j'ai essayé de simplifier le problème et d'utiliser une simple translation)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
void OgreWidget::anima()
{
	float vitesse=0.001f;
	 cDestination=Ogre::Vector3(30, 50, 0.0);
	 for(int i=0;i<100;i++)
	 while ( cPosition.distance(cDestination)> 5) 
 
	 {
 
		 cDirection=cDestination-cPosition;    
		cDirection.normalise();
		cDirection = cDirection * vitesse;
		 newPosition=cPosition+cDirection;
	   CubeNode->setPosition(newPosition);
         cPosition=CubeNode->getPosition();
		 CubeNode->yaw(Ogre::Degree(0.1f));
	 }
come j'ai une fonction paint
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
void OgreWidget::paintEvent(QPaintEvent *e)
{
 
   	ogreRoot->_fireFrameStarted();
 
    ogreRoot->_fireFrameRenderingQueued();
 
	ogreRenderWindow->update(); 
    ogreRoot->_fireFrameEnded();
 e->accept();
 
}
mais quands je clic sur le button animation
l'objet se déplace trop vite je ne vois pas qu'il fait une animation
est ce que je dois utiliser une timer ? comment ?