Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2007, 10h17   #1
Futur Membre du Club
 
Inscription : août 2007
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 74
Points : 18
Points : 18
Par défaut Problême duplication collision AS2

Bien le bonjour chère Fauxrhum!
Je viens solliciter votre aide car je deviens fou sur un code qui veut pas marcher, enfin une partie est ok mais l'autre non.
Je vous explique:

Ce code fait partie d'un jeu que je fais sous flash, des boules sont dupliquées à partir de "cible_btn", et ce une fois par seconde et bouge aléatoirement sur la scène de droite à gauche. Ces boules dupliquées ce nomme "new"+j+"mc", avec j qui est incrémenté chaque seconde.
A gauche ce trouve un rectangle nommé "sortie".

Le but de la manoeuvre et que quand une boule touche "sortie" elle disparait.
D'ou ma collision hitTest.
Cela marche parfaitement avec cible_btn.
Mais ce qui est des boules dupliquées ("new"+j+"mc"), impossible!
Elles bougent mais la collisition n'est pas prise en compte et ma variable evade ne s'incrémente pas!

"new"+j+"mc".onEnterFrame = function()

Je sais que ce code ne peux pas marcher mais bon mon but est d'appliquer ce code a chaque nouvelle boule qui se duplique!
Mais comment ce faire

J'espère avoir été clair,
Merci beaucoup

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//VARIABLES
nb_mc = 1;
temps = 0;
j = 0;
evade = 0;
 
//VOILA LA BOUCLE QUI DUPLIQUE
var mon_interval = setInterval(seconde, 1000);
function seconde() {
duplicateMovieClip(cible_btn, "new"+j+"mc", nb_mc);
nb_mc++;
temps++;
j++;
trace(j);
if (temps == 10) {
clearInterval(mon_interval);
}
}
 
 
//ACTION DE COLLISION AVEC MA BOULE CIBLE_BTN
cible_btn.onEnterFrame = function() {
if (!sortie.hitTest(cible_btn)) {
return;
}
if (evade<=0) {
evade++;
removeMovieClip("new"+j+"mc");
cible_btn._visible = false;
}
};
 
//ACTION DE COLLISION AVEC MA BOULE "NEW"+J+"MC"
"new"+j+"mc".onEnterFrame = function() {
if (!sortie.hitTest("new"+j+"mc")) {
return;
}
if (evade<=0) {
removeMovieClip("new"+j+"mc");
}
};
stop();
laipreu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 10h01   #2
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
je pense qu un truc comme ça fonctionera mieu mais c est à tester


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//VOILA LA BOUCLE QUI DUPLIQUE
var mon_interval = setInterval(seconde, 1000);
function seconde() {
  duplicateMovieClip(cible_btn, "new"+j+"mc", nb_mc);
  //ACTION DE COLLISION AVEC MA BOULE "NEW"+J+"MC"
  this["new"+j+"mc"].onEnterFrame = function() {
    if (!sortie.hitTest("new"+j+"mc")) {
      return;
    }
    if (evade<=0) {
      removeMovieClip("new"+j+"mc");
    }
  };
  nb_mc++;
  temps++;
  j++;
  trace(j);
  if (temps == 10) {
    clearInterval(mon_interval);
  }
}

Au pire mais ton fichier se sera plus simple
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h54.


 
 
 
 
Partenaires

Hébergement Web