Arrêter le compteur lorsqu'une condition est remplie

tilp75015 Messages postés 5 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 11 septembre 2008 - 11 sept. 2008 à 15:57
tilp75015 Messages postés 5 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 11 septembre 2008 - 11 sept. 2008 à 18:25
Salut j'ai un compteur comme ceci :
compteur = 0;
function compte() {
    compteur += 1;
}
setInterval(compte, 1000);

et j'aimerais quand lorsqu'une condition est remplie (exemple un clip touche un autre clip) je puisse afficher le temps du compteur. (temps de la partie du joueur)

autrement j'aimerais faire quelque chose dans ce genre là :

compteur = 0;

function compte() {

    compteur += 1;

}

setInterval(compte, 1000);

onEnterFrame = function() {
if(ennemi.hitTest(heros)) {
   texte= "Temps de partie : " +result_compteur;
}
}

Voila si quelqu'un aurait la gentillesse de m'aider un peu, je le remercie d'avance.

7 réponses

Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
11 sept. 2008 à 16:06
Bonjour,

Ton idée de base est la bonne, juste au lieu de metre :    texte= "Temps de partie : " +result_compteur,
met : texte= "Temps de partie : " +compteur.

Tout simplement, tu as juste a reprendre la variable compteur déjà crée, pas la peine de t'en créer une seconde
0
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
11 sept. 2008 à 16:08
Ah mince joubliais , rajoute egalement une variable a l'interval , afin de le stopper lors de la collision, sinon le compteur continuera de tourner et la valeur dans ton texte avancera egalement.

ex :
mon_interval = setInterval(compte, 1000);

Puis dans ta condition de collision :
onEnterFrame = function() {
if(ennemi.hitTest(heros)) {
clearInterval(mon_interval)
   texte= "Temps de partie : " +result_compteur;
}
}
0
tilp75015 Messages postés 5 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 11 septembre 2008
11 sept. 2008 à 16:16
Merci beaucoup, ça marche !
0
tilp75015 Messages postés 5 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 11 septembre 2008
11 sept. 2008 à 16:24
Pour le temps, j'aimerais que sa affiche les dixièmes de secondes aussi, comment dois-je faire ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Skev Messages postés 255 Date d'inscription mardi 27 juin 2006 Statut Membre Dernière intervention 9 janvier 2010 3
11 sept. 2008 à 16:44
Creer 2 compteur, un pour les secondes et un pour les dixiemes de secondes

Ex:
compteur_sec = 0;
compteur_dixieme = 0;
function compte() {
    if (compteur_dixieme<100) {
        compteur_dixieme++;
    } else {
        compteur_dixieme = 0;
        compteur_sec++;
    }
}
mon_interval = setInterval(compte, 10);
//
onEnterFrame = function () {
    total = compteur_sec+":"+compteur_dixieme;
   if(ennemi.hitTest(heros)) {
   clearInterval(mon_interval)
   texte= "Temps de partie : " +total;
}
   
};
0
tilp75015 Messages postés 5 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 11 septembre 2008
11 sept. 2008 à 18:21
Merci encore :)

J'ai un dernier petit problème...
J'aimerais désactiver un clip, exemple si le héros touche un clip, que ce clip disparaisse de la scène
j'ai mit ceci comme code :
onEnterFrame = function() {
    if(heros.hitTest(argent10)) {
        argent += 10;
        argent10.enabled = false;
    }
}

Et j'ai essayé aussi argent10._visible = false; mais le clip argent10 disparait mais l'argent continue de monter (+10 +10 +10 +10 etc) et j'aimerais justement que le joueur gagne une seul fois 10 en argent si il touche le clip argent10...

Merci d'avance
0
tilp75015 Messages postés 5 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 11 septembre 2008
11 sept. 2008 à 18:25
Bon enfaite j'ai trouvé une solution ^^
pour les intéressés :
onEnterFrame = function() {
    if(heros.hitTest(argent10)) {
        argent += 10;
        argent10.swapDepths (16384);
        removeMovieClip (argent10);
    }
}
0
Rejoignez-nous