Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: comment peut on faire l'impact d'une balle ?
Envoyé: 11 décembre 2004, 5h44 par toph
effectivement, faut faire un truc du genre du ticket à gratter en créant des clip (des clips représentant un impact de balle qui doivent être contenus dans ta bibliothèque et qui doivent être exportables pour l'actionscript) tu peux réglé ce paramètre en faisant clic droit-> liaion sur ton élément dans la bibliothèque : tu coches exporter pour actionscript et comme identifiant, tu marques : "impact". Cet identifiant doit être unique, il te sert à appeler cet élément à partir de ton animation
Ensuite, tu dois définir une zone de clic ... celle du mur donc ton action doit se situer au niveau de l'objet mur (si tu ne l'as pas fait, il faut convertir ton mur en clip et lui donner comme nom d'occurence (en bas à droite panneau "propriétés") : "mur"
Après c'est du gateau, il suffit simplement de détecter chaque clic de souris sur ton clip "mur" (les deux premières lignes du code), calculer la profondeur à laquelle tu dois créer ton impact et de créer une occurence du clip "impact" présent dans ta bibliothèque à cette profondeur ...
Ca donne ça (je l'ai testé ça marche) :
Si besoin, réfère toi à kl'aide de flash qui est très bien faite concernant "hitTest"
mur.onMouseDown = function(){
if (hitTest( _xmouse, _ymouse, false)){
profondeur = this._parent.getNextHighestDepth();
this._parent.createEmptyMovieClip("impact"+profondeur, profondeur);
this._parent["impact"+profondeur]._x = this._parent._xmouse;
this._parent["impact"+profondeur]._y = this._parent._ymouse;
this._parent["impact"+profondeur].attachMovie("impact", this, 0);
}
}
Petit rappel concernant les profondeurs ...
Flash gère ses objets comme photoshop, illustrator ou n'importe quel autre logiciel de développement graphique, sous forme de calques, chacun est situé à une certaine profondeur et il ne peut y avoir qu'un seul objet pour une profondeur donnée. Plus la profondeur est élevée au dessus de zéro plus l'objet est au dessus de tous les autres.
Pour tes impacts de balles , il est nécessaires de détecter la prochaine profondeur où il n'y a pas d'objet (cf getNextHighestDepth dans l'aide de flash, très bien fait aussi), afin de pouvoir créer tron nouvel impact sans en supprimer un déjà existant...
Pour faire un test, remplace tout simplement la ligne
profondeur = this._parent.getNextHighestDepth();
par
profondeur = 3;
et tu vas vite comprendre de koi je parle...
Voilà en esparént que ça a été clair pour toi ...
A plus
Toph'
Réponses
|