#1 

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


#2 

02-03-2010 23:27:32

iLambda²
Membres
Avatar de iLambda²
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


#3 

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


#4 

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


#5 

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


#6 

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


#7 

07-03-2010 21:56:50

iLambda²
Membres
Avatar de iLambda²
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


#8 

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


#9 

08-03-2010 18:08:35

iLambda²
Membres
Avatar de iLambda²
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


#10 

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


#11 

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


#12 

10-03-2010 18:54:28

iLambda²
Membres
Avatar de iLambda²
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


#13 

10-03-2010 19:13:57

jonath313
Membres
Date d'inscription:
Messages: 240
IP: 195.221.123.215
Courriel

okok merci bien


Hors ligne


#14 

28-03-2010 07:28:16

nabouill
Membres
Avatar de nabouill
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 smile

Hors ligne


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
571 invités en ligne
membre en ligne: -
RSS Feed