Bonjour, voilà mon actuel problème :
j'ai une classe "golem" qui comporte tout ce qu'il faut pour son fonctionnement.
Entre autre, sa position dans l'univers en 3D. Voilà mon problème : avec des tableaux, j'ai créé une dizaine de golems.
Ceux ci sont tous graphiquement identique (même mesh) mais évidemment chaque golem se trouve à un endroit différent. Mon problème est que je n'arrive pas à les afficher : j'ai une classe avec laquelle à l'aide d'un tableau je créé une dizaine de golem mais je ne sais pas les afficher correctement dans l'espace.
J'ai tenté ceci :
golem2[10] = smgr->addAnimatedMeshSceneNode(model_golem);
for (int i = 0; i <= 10; i++)
{
golem2[ i ]->setPosition(core::vector3df(golem[ i ].getX(), golem[ i ].getY(), golem[ i ].getZ()));
}
Pourriez vous me dire s'il est possible de corriger mon problème, ou sinon de m'indiquer clairement une autre manière d'aboutir à l'affichage de golem qui sont créés en masse avec un même modèle.
Merci d'avance
Hors ligne
golem2[10] = smgr->addAnimatedMeshSceneNode(model_golem);
Ce code n'initialise pas les éléments du tableaux, tu dois tous les initialiser dans ta boucle.
Essaies un truc du genre :
for (int i = 0; i < 10; i++) // ici, c'est un inférieur strict !
{
golem2[i] = smgr->addAnimatedMeshSceneNode(model_golem);
golem2[i]->setPosition(core::vector3df(golem[ i ].getX(), golem[ i ].getY(), golem[ i ].getZ()));
}
Les Golems devraient s'afficher
Hors ligne
Salut !
Merci de ta réponde rapide !
J'ai un nouveau problème : est ce que l'affichage de 2 ou 3 golems peut provoquer un ralentissement massif dans le jeu ? Comme la logique m'impose la réponse négative, je me suis demandé d'où pouvait probablement provenir le problème (allitération en "p"). Mais rien à l'horizion, morne plaine... Alors je me suis dis que peut-être vous auriez une théorie cosmique sur un tel ralentissement : et comme je suis globalement un naze dans le domaine je me suis dis que si je vous mettais quelques bouts de codes vous comprendriez peut-être mieux... (au fait, peut-être est ce du au fait que je laisse le programme tourner sans timer mais bon le programme est encore très léger, les classes sont minablement petites, donc je ne pense pas que ca puisse etre la source de cette contre performance vélocitique)
scene::ITriangleSelector* selector
= smgr->createTerrainTriangleSelector(terrain, 0);
terrain->setTriangleSelector(selector);
selector->drop();
scene::IAnimatedMeshSceneNode* Character = smgr->addAnimatedMeshSceneNode(smgr->getMesh("knight.md2"));
Character->setScale(core::vector3df (2,2,2));
golem golem[2];
scene::IAnimatedMesh *modele = smgr->getMesh("knight.md2");
scene::IAnimatedMeshSceneNode* golem2[2];
for (int j = 0; j < 2; j++)
{
golem2[j] = smgr->addAnimatedMeshSceneNode(modele);
golem2[j]->setPosition(core::vector3df(golem[ j ].getX(), golem[ j ].getY(), golem[ j ].getZ()));
}
scene::ISceneNodeAnimator* anim12 = smgr->createCollisionResponseAnimator(
selector, Character, core::vector3df(40,0.05,40),
core::vector3df(0,-100,0),
core::vector3df(0,50,0));
Character->addAnimator(anim12);
anim12->drop();
scene::ISceneNodeAnimator* anim[2];
for(i = 0; i < 2; i++){
anim[ i ] = smgr->createCollisionResponseAnimator(
selector, golem2[ i ], core::vector3df(40,0.05,40),
core::vector3df(0,-100,0),
core::vector3df(0,50,0));
golem2[ i ]->addAnimator(anim[ i ]);
anim[ i ]->drop();
}
Hors ligne
Fremtid :
J'ai un nouveau problème : est ce que l'affichage de 2 ou 3 golems peut provoquer un ralentissement massif dans le jeu ?
A priori, non, après, tout dépend de la taille des golems... Les modèles sont peut-être trop lourd.
Sinon, je vois rien de très gourmand dans le code que tu as posté, tu peux peut-être poster le reste si c'est pas trop long.
Hors ligne
Oui effectivement, les golems étaient un peu lourds, je les ai allégés et tout va bien maintenant
Au fait, est il impossible d'attacher une lumière à un node ? J'ai voulu placer la lumière et faire un setParent mais pouf, la lumière disparaît étrangement. En tout cas je te remercie énormément pour ta patience et tes réponses !
Hors ligne
Normalement ça pose pas de problème. Vérifie que la lumière est bien positionné (si elle est dans le modèle, tu la verras pas). Si c'est pas ça, poste ton code, t'as peut-être fait une erreur
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 44 invités en ligne Aucun membre connecté RSS Feed |