Historique des modifications - Message

Message #1569

Sujet: apesanteur et animation


Type Date Auteur Contenu
Dernière modification 14-02-2007 16:06:50 babar63
merci beaucoup pour ta reponse Copland,

j'avai déja à peu près penser à ces solutions simplement je les utilises peut etre mal (malgré des heures plongés dans la doc wink
pour ce qui est de l'apesanteur voila mes ligne de code :

//collision nodeG/piste :
selecteur = smgr->createOctTreeTriangleSelector(meshPiste->getMesh(0), nodePiste, 32);
anim = smgr->createCollisionResponseAnimator(selecteur,nodeG,radius,vector3df(0,-150,10 ),vector3df(0,9,-30),0.0001f);
nodeG->addAnimator(anim);
anim->drop();

1er probleme : c'est que je dois faire correspondre la force de l'attraction (ici -150) et le sliding (0.0001f) et afin de pouvoir glisser correctement et la vitesse est presque nul!! sad
2eme probleme : le perso ne glisse que selon l'axe des x, mon code marchait mieux lorsque j'incrémenté automatiquement les x dans une classe dérivée de ISceneNodeAnimator sad

pour l'animation je ne suis pas bien sur mais je crois avoir fait un peu n'importe quoi (ben oui je debute smile ) enfin voila ma situation : je possede un ISceneNode* (nodeG) avec lequel je gere les collisions(ce qui explique la translation de l'ellipsoide vector3df(0,9,-30) puisque mon perso n'est pas sur le nodeG) et le billboard. Ensuite je lui ai attaché mon perso devant puis la camera! Du coup, lorsque j'essai de changer de frame je suis obligé de tout recharger (collision...) et je ne vois pas pourquoi :s

exemple pour tourner a gauche :
case KEY_LEFT:
{
	core::vector3df v = nodeG->getPosition();

	if(!rotatGauche)
	{
		nodePerso->remove();
		meshPersoGauche = smgr->getMesh("../media/pandaGauche.3ds");

		nodePerso = smgr->addOctTreeSceneNode(meshPersoGauche->getMesh(0));
		nodePerso->setMaterialTexture(0, idriver->getTexture("../media/texturePerso.jpg"));
		nodePerso->setMaterialFlag(video::EMF_LIGHTING,false);

		nodeG->addChild(nodePerso);
		gestionOisivete();
		gestionCollision();
		chargementBillboard(0);
		nodeG->setPosition(v);

		rotatGauche = true;
       }

Encore merci @bientot j'espere ^^
Création du message 14-02-2007 16:05:21 babar63
merci beaucoup pour ta reponse Copland,

j'avai déja à peu près penser à ces solutions simplement je les utilises peut etre mal (malgré des heures plongés dans la doc wink
pour ce qui est de l'apesanteur voila mes ligne de code :

//collision nodeG/piste :
selecteur = smgr->createOctTreeTriangleSelector(meshPiste->getMesh(0), nodePiste, 32);
anim = smgr->createCollisionResponseAnimator(selecteur,nodeG,radius,vector3df(0,-150,10 ),vector3df(0,9,-30),0.0001f);
nodeG->addAnimator(anim);
anim->drop();

1er probleme : c'est que je dois faire correspondre la force de l'attraction (ici -150) et le sliding (0.0001f) et afin de pouvoir glisser correctement et la vitesse est presque nul!! sad
2eme probleme : le perso ne glisse que selon l'axe des x, mon code marchait mieux lorsque j'incrémenté automatiquement les x dans une classe dérivée de ISceneNodeAnimator sad

pour l'animation je ne suis pas bien sur mais je crois avoir fait un peu n'importe quoi (ben oui je debute smile ) enfin voila ma situation : je possede un ISceneNode* (nodeG) avec lequel je gere les collisions(ce qui explique la translation de l'ellipsoide vector3df(0,9,-30) puisque mon perso n'est pas sur le nodeG) et le billboard. Ensuite je lui ai attaché mon perso devant puis la camera! Du coup, lorsque j'essai de changer de frame je suis obligé de tout recharger (collision...) et je ne vois pas pourquoi :s

exemple pour tourner a gauche :
case KEY_LEFT:
{
	core::vector3df v = nodeG->getPosition();

	if(!rotatGauche)
	{
		nodePerso->remove();
		meshPersoGauche = smgr->getMesh("../media/pandaGauche.3ds");

		nodePerso = smgr->addOctTreeSceneNode(meshPersoGauche->getMesh(0));
		nodePerso->setMaterialTexture(0, idriver->getTexture("../media/texturePerso.jpg"));
		nodePerso->setMaterialFlag(video::EMF_LIGHTING,false);

		nodeG->addChild(nodePerso);
		gestionOisivete();
		gestionCollision();
		chargementBillboard(0);
		nodeG->setPosition(v);

		rotatGauche = true;
       }

Encore merci @bientot j'espere ^^

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
169 invités en ligne
membre en ligne: -
RSS Feed