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)
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
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)); }
mais quands je clic sur le button animation
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(); }
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 ?
Partager