begin process at 2012 02 10 10:59:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

arrêt movieclip


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

arrêt movieclip

samedi 24 février 2007 à 20:40:28 | arrêt movieclip

marcod59

Bonjour,

Je suis complètement novice dans l'action script, et pour comprendre un peu ce langage j'ai pris un tuto sur un jeu de tir au canard, qui doit être connu sur ce site. J'essai d'apporter des modifications dans ce script afin de comprendre comment ça marche, mais je reste bloqué sur quelque chose, qui j'en suis sur doit être simple pour quelqu'un qui connait. Voici le code :

/* La classe hérite des propriété d'un clip car notre canard est un objet de la bibliothèque */
daffy.prototype = new MovieClip();
/* Initialisation d'un canard */
function daffy() {
 this.mort = false;
 // Un canard est vivant par défaut
 this.crash = false;
 // Un canard vol par défaut
 this.vitesse = Math.random()*5+3;
 // La vitesse est aléatoire
 this.sens = int(Math.random());
 // sens aléatoire également (ici sens = 0 ou -1)
 if (this.sens == 0) {
  this.sens = -1;
 }
 // fait en sorte que sens soit -1 ou 1 uniquement.
 this._xscale = this._yscale=Math.random()*40+20;
 // Donne une grosseur aléatoire aux canards
 this._x = Math.random()*900-50;
 // donne une position aléatoire aux canards
 this._y = Math.random()*150+40;
 this._xscale = this._xscale*-this.sens;
 // le canard est dirigé vers le sens ou il va
}
/* Liaison de notre classe avec l'objet de la bibliothèque */
Object.registerClass("canard", daffy);
/* Création d'un canard à l'écran */
var niveau:Number = 1;
// "Calques Action Script" où sera placé le prochain canard
var total:Number = 0;
// Combien y a t-il de canards affichés
/* Affiche le canard */
function nouveau_canard() {
 if (score == 5) {
  son3.stop();
  gotoAndStop(403);
 }
 if (total<5) {
  _root.attachMovie("canard", "mon_canard", niveau);
  son1.start();
  niveau++;
  total++;
 }
}
nouveau_canard();
setInterval(nouveau_canard, 700);
//daffy.prototype.onEnterFrame = function() {
 // ici code pour faire avancer le canard
//};
daffy.prototype.onEnterFrame = function() {
 if (not this.crash) {
  // Si le canard n'est pas au sol
  this._x = this._x+this.vitesse*this.sens;
  // Déplace le canard horizontalement
  // Si le canard est sortit de l'écran :
  if (((this._x-this._width>800) or (this._x+this._width<0)) and not this.mort) {
   this.sens = -this.sens;
   // On change son sens
   this._xscale = -this._xscale;
   // On inverse horizontalement l'image
  }
  if (this.mort) {
   // S'il a été touché, il faut qu'il tombe
   this._y = this._y+1+(this._rotation*this.sens)/4;
   // Fait descendre le canard
   if (this._rotation<30) {
    this._rotation += this.sens;
   }
   // Fait tourner l'image du canard
   if (this._y>450) {
    this.crash = true;
   }
   // S'il touche terre : il est crashé
  }
 } else {
  // Le canard est par terre
  this._alpha--;
  // On réduit sa transparence
  if (this._alpha<0) {
   // S'il n'est plus visible
   total--;
   // On le retire du total des canard affichés
   this.removeMovieClip();
   // On le retire de la scène
  }
 }
};
/* Action quand on clique dessus */
daffy.prototype.onPress = function() {
 this.mort = true;
 score = score+1;
 // Change l'état du canard
 this.gotoAndStop(10);
 // Change l'image du canard
};
var son = new Sound();
son.attachSound("duck.mp3");
son.setVolume(60);
// volume en pourcentage
son.stop();
// arrête la lecture du son
son.start();
// démarre la lecture du son
var son3 = new Sound();
son3.attachSound("zikette.mp3");
// attend d'avoir chargé la musique complètement
son3.start(0, 5);
// ligne que vous pouvez commenter ensuite :)
son3.setVolume(80);
// variables des sons
son1 = new Sound();
son2 = new Sound();
// Charge les fichiers
son1.attachSound("duck.mp3");
son2.attachSound("gunfire.mp3");
// définit les volumes
son1.setVolume(60);
son2.setVolume(100);
fusil.onMouseMove = function() {
 var mx = souris._x-fusil._x;
 // calcul d'angle (trigo de 5eme ;)
 var my = souris._y-fusil._y;
 var angle = -Math.atan(mx/my)*180/Math.PI;
 if (angle<-40) {
  angle = -40;
 }
 // limite l'orientation du fusil
 if (angle>40) {
  angle = 40;
 }
 fusil._rotation = angle;
 // definit l'orientation
};

Dans le code j'ai mis en rouge ce que j'ai ajouté. Je compte combien de canard on été touché, et lorsque j'ai le compte que je veux je vais sur une autre image. Mon problème est que je change bien d'image, mais je garde les canards qui volent. Comment les faire disparaître ?

Merci d'avance pour vos réponse
@+++

marcod59
dimanche 25 février 2007 à 12:27:17 | Re : arrêt movieclip

Darkrats

Réponse acceptée !
Salut,

je n'ai pas lu tout ton code mais pour pouvoir effacer des clips créés via la fonction "attachMovie" tu dois utliser la fonction "removeMovieClip"
Dans le code, tu as juste après ton code ajouté :
    if (total<5) {
          _root.attachMovie("canard", "mon_canard", niveau);
          son1.start();
          niveau++;
          total++;
    }

Tu crées donc dynamiquement (et c'est logique vu ton style de jeu) les canards.
Pour supprimer le canard, tu dois faire ceci :
    mon_canard.removeMovieClip();

--------- Darkrats ---------
la loi est dure mais c'est la loi
 -------- Infograpix --------
dimanche 25 février 2007 à 16:16:16 | Re : arrêt movieclip

marcod59

Salut,

Pour commencer, merci pour ta réponse qui fonctionne très bien. J'avoue que je suis un peu perdu dans la façon de programmer. J'ai des bases de VB, et j'ai un peu de mal avec actionscript car j'apprend au fur et à mesure avec des exemples pris ici et là.

Merci encore et bpnne prog
@+++
marcod59


Cette discussion est classée dans : math, angle, sens, canard, daffy


Répondre à ce message

Sujets en rapport avec ce message

Balle qui rebondit contre des murs [ par antolionel ] Bonjour, J'ai réalisé un petit programme en Action Script, qui calcul la position d'une balle lancée avec une certaine vitesse avec un certain angle, actionscript - problème variables dans une fonctions [ par neymo ] Bonjour,  j'ai le problème suivant :  J'ai un petits script que j'ai récupéré sur le net et adapté à mes besoins. Ayant quelques notions de prog, j'ai Angle ; radian ; ... [ par Blacknight91titi ] SalutJe dévellope un projet que je mettrait a dispo lorsqu'il sera fini Voiçi mon problème :Je dipose d'un poisson dans un aquariumJe veu faire une so API Cercle [ par on_drag_on ] voilà je veux dessiner un cercle: MovieClip.prototype.drawCirle=function(rayon,x,y) { //Je crée la méthode     var monangle=Math.PI/4; //il s'agit d Faire une pause sur un script contenu dans un clip [ par bulldog7859 ] Bonsoir Amis(ies) flasheurs, Voilà, je vous explique... J'ai créé plusieurs boules (clips) appelées B1, B2 Collision balle avec un coin en quart de cercle [ par badben ] Bonjour je suis en train de développer un jeu de golf.J'aimerais que quelqu'un me corrige mon code. En effet j'ai des soucis cocnernant le rebond sur Comment changer les paramètres de ce menu [ par mysstick ] Alors, voici mon pb :http://www.flashkod.com/codes/MENU-CARROUSSEL-3D_46489.aspxC'est le fichier que j'utilise pour faire un menu, la source est terri Tracer une ellipse en pointillés ... [ par baronz ] Bonjour à tous.J'aimerais savoir si quelqu'un a déja rencontré ou développé une fonction permettant de tracer dynamiquement une éllipse en pointillés. des images en rotation sur une trajectoire elliptique [ par marou85 ] Je suis encore sébutant en Action script alors J'ai réalisé une animtion simple qui se base sur Rotation Y d'un objet on insèrant ce code sur un clip movie clip [ par nahlaone ] Bonjour,Je déboute en action script et j'avoue que je nage un peu !!!!Alors voila j'ai recupere une super source pour un menu en caroussel. Le problem


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales