02-03-2010 21:50:46
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
Voila j'ai du mal a m'imaginer comment ramasser les munitions dans mon FPS, j'ai crée une caisse de munition et je voudrais que lorsque je passe dessus il se passe que çà recharge les munitions de mon flingue et que la caisse disparaisse ainsi que ses effets.
Si quelqu'un à une idée merci d'avance !
Hors ligne
02-03-2010 23:27:32
- iLambda²
- Membres

- Date d'inscription:
- Messages: 29
- IP: 90.61.101.199
- Courriel
J'ai fait un truc comme ca, je ressorts le code et j'te l'envoie !
Hors ligne
02-03-2010 23:40:05
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
while (device->run())
{
driver->beginScene(true,true,SColor(0,200,200,200));
sceneManager->drawAll ();
if( munition <= 10 && camera->getPosition().X > 0 && camera->getPosition().X < 10 )
{
munition = munition + 2;
FSOUND_PlaySound(FSOUND_FREE, remplirArme);
//Ncaisse->remove();
//Ncaisse->drop();
}
....
....
}
J'ai fait comme cela en testant la position de la caméra et celle des la caisse de munition en X et en Z çà fonctionne nikel mais le problème c'est que j'ai commenté le remove() car je ne peut pas éffacer la caisse une foi qu'elle à servit sinon çà plante dès que je repasse sur les coordonnées que j'ai mi dans le if(...)
Hors ligne
02-03-2010 23:41:30
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
dacord merci de ton aide !!!
Hors ligne
04-03-2010 17:07:58
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
Personne ne trouve mon erreur ? pourquoi le remove() fait-il beuger mon code ?
Hors ligne
07-03-2010 21:17:02
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
ok personne ne peut m'aider visiblement...
Hors ligne
07-03-2010 21:56:50
- iLambda²
- Membres

- Date d'inscription:
- Messages: 29
- IP: 90.61.108.29
- Courriel
Moi j'ai mit un setPosition(10000.0f, 10000.0f, 10000.0f); pour ruser ^^
Hors ligne
08-03-2010 16:24:52
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
mais le soucis c'est que le programme plante quand la caisse se supprime c pas normale çà
Hors ligne
08-03-2010 18:08:35
- iLambda²
- Membres

- Date d'inscription:
- Messages: 29
- IP: 90.61.108.29
- Courriel
Si psk ton pointeur devient NULL, et ton prog crash... Donc tu met avant de tester la position : if(caisse != 0) et puis tu met dans les accolades ton truc... 'Pis si ca marche pas, tu fait un set position Loin, très loin !
Hors ligne
08-03-2010 19:43:51
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
ok merci bin j'ai fait comme toi même si cette solution me plait pas trop car c planker des mesh inutile et je pense qu'a forte dose la mémoire va avoir mal. t'en pense quoi ?
Hors ligne
10-03-2010 09:15:36
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
On peut rendre la caisse invisible sinon :
Ncaisse->setVisible(false);
Hors ligne
10-03-2010 18:54:28
- iLambda²
- Membres

- Date d'inscription:
- Messages: 29
- IP: 90.35.130.58
- Courriel
Ouais mais si elle est invisible le gars pourra toujours la prendre... Et puis la memoire n'en prendra pas un coup, car tu ne fait que déplacer une caisse... Et puis comme ca pour la repop, bah tu refait un setPosition pour la remetre a son endroit initial... J'ai fait comme ca en tt cas !
Hors ligne
10-03-2010 19:13:57
- jonath313
- Membres
- Date d'inscription:
- Messages: 240
- IP: 195.221.123.215
- Courriel
okok merci bien
Hors ligne
28-03-2010 07:28:16
- nabouill
- Membres

- Date d'inscription:
- Messages: 242
- IP: 80.239.242.126
- Courriel
Avant je faisait exactement comme iLambda², depuis j'ai trouvé un truc pas mal, un animateur qui supprime ton nœud de scène au bout d'un temps définie
par exemple, pour supprimé un nœud de scène dans 1000 millisecondes:
Code c++ :
ISceneNodeAnimator* animSuprim = sceneMgr->createDeleteAnimator(1000);
Ncaisse->addAnimator(animSuprim);
animSuprim->drop();et notre nœud Ncaisse a totalement disparue
Hors ligne



