Historique des modifications - Message

Message #1569

Sujet: apesanteur et animation


TypeDateAuteurContenu
Dernière modification14-02-2007 16:06:50babar63
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 docwink
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 ISceneNodeAnimatorsad

pour l'animation je ne suis pas bien sur mais je crois avoir fait un peu n'importe quoi (ben oui je debutesmile) 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 message14-02-2007 16:05:21babar63
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 docwink
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 ISceneNodeAnimatorsad

pour l'animation je ne suis pas bien sur mais je crois avoir fait un peu n'importe quoi (ben oui je debutesmile) 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

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
110 invités en ligne
membre en ligne: -
RSS Feed