Pistolet dans un jeu

Résolu
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008 - 25 juil. 2006 à 19:44
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 - 26 juil. 2006 à 13:49
Bonjour,
Je suis en train de programmer un jeu et je voulais ajouter un pistolet pour mon personnage principale. le probleme c'est que je ne vois pas comment faire pour dire que quand une balle (qui sera la copie d'un clip et qui se copira a chaque fois que l'on appuis sur ctrl, donc il peut y en avoir plusieurs en meme temps) touche n'importe qu'elle enemis, l'enemis meurt. Merci !

3 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
26 juil. 2006 à 13:49
Rebonjour !

Non, tu peux avoir un tableau qui stock les références aux ennemis
pour reprendre l'exemple:
ennemis[0]=_root.ennemi1
ennemis[1]=_root.leGrosMechant22
ennemis[2]=_root.unMechantpresqueGentil

Ton idée de  mettre les balles dans un tableua et de verifier dans chaque ennemis si il est touché par une balle revient exactement au même sauf que, en y repensant, cette solution serait plus économique en temps de calcul car il y aura sans doute moins d'ennemis que de balles sur la scene.

on inverse juste le code
// des qu'une balle est tirée
_root.balles.push(reference_au_clip_balle)

unEnnemi_mc.onEterFrame=function(){

 for (i=0;i<_root.balles.length;i++){
if (this.hitTest(_root.balles[i]){
 // Creer un code ou appel d'une fonction qui tue unEnnemi_mc
}
//où balles[] est un tableau contenant la référence de tous les clips de balle tirées
}

Maintenant, pour allez plus loin, dans ton cas il serait tres intéressant de fonctionner avec des classes (si tu travailles en actionscript 2)

Tu aurais une classe de base Ennemi contenant les éléments communs à tous les ennemis (bouger, mourrir,...) et des classes filles qui étendent la classe Ennemi avec les spécificités de chaque type d'ennemis
Même ton personnage principale pourrait être une classe fille de Ennemi -> il peut aussi bouger, mourrir, ...

Mais on entre dans la programmation orienté objet qui est une autre affaire !!

@+
Jo
3
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
26 juil. 2006 à 09:17
Bonjour,

tu pourrais placer sur chaque copie des balles un script qui vérifie (à chaque onEnterFrame) si la balle touche un ennemi (fonction hitTest)
du genre
lorsqu'une balle est tirée
_laBalle.onEterFrame=function(){

 for (i=0;i<_root.ennemis.length;i++){
if (this.hitTest(_root.ennemis[i]){
 // Creer un code ou appel d'une fonction qui tue l'ennemis [i]
}
où ennemis[i] est un tableau contenant la référence de tous les clips ennemis
}
0
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008
26 juil. 2006 à 11:44
merci beaucoup de ton aide !
Mais il y a qqc que je n'est pas comprise :
les ennemis doivent tous s'appler du style : ennemis1 ennemis2 etc ??
car moi j'ai pls type d'ennemis donc il y en a qui s'appelle totalement autrement ! Comment je fait ? je pourait pas plutot faite l'inverse ? que je mette sur tout les ennemis une fonction qui dit que s'il se fait toucher par une balle, il creve. je ferait un tableau contenant les noms des balles qui sont actuellement sur la scene. qu'elle en sera le code ?
Merci !
0
Rejoignez-nous