Tutoriels vidéo art graphique gratuits

 
Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Pages: [1]   En bas

Auteur Sujet: Jeu flash : Détecter la fin d'un grattage  (Lu 3571 fois)

sopoyo4

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 7
    • Voir le profil
Jeu flash : Détecter la fin d'un grattage
« le: décembre 18, 2009, 13:36:01 pm »

Bonjour,

j'ai une question concernant un jeu en flash que je dois réaliser, il s'agit de gratter 3 tickets. Pour l'effet de grattage j'ai réussi à trouver un script. En fait j'aimerai savoir comment faire pour que lorsque la personne à terminer de gratter tous les tickets à lancer une autre animation ( par exemple, vs avez gagnez, félicitation...).

Merci d'avance

PS : voici mon code

gratter = false;
compteur = 1;
initialisation_clip = new Object();

onMouseDown = function(){
   gratter = true;
};
onMouseUp = function(){
   gratter = false;
};

onMouseMove = function(){
   if(gratter){
      initialisation_clip._x = _root._xmouse;
      initialisation_clip._y = _root._ymouse;
cache.attachMovie("zone","gratteur"+compteur,compteur, initialisation_clip);
      compteur++;
   }
};
« Modifié: décembre 18, 2009, 17:02:13 pm par sopoyo4 »
IP archivée

kriztho

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 1490
    • Voir le profil
    • La veille techno du web
    • E-mail
Re : Jeu flash : Détecter la fin d'un grattage
« Réponse #1 le: décembre 18, 2009, 17:00:12 pm »

Avec tous tes _root, RMistral va râler  ;D
IP archivée
______________________________________________________________
Je ne connais pas grand chose, mais je progresse...
[La veille techno du web] - [Histoire d'écrire de l'informatique]

sopoyo4

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 7
    • Voir le profil
Re : Jeu flash : Détecter la fin d'un grattage
« Réponse #2 le: décembre 18, 2009, 17:01:24 pm »

arg désolée je vais les enlever ;)
IP archivée

RMistral (Wisi)

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 659
    • Voir le profil
    • Aexpmil Studio - Aexpmil Formation
Re : Jeu flash : Détecter la fin d'un grattage
« Réponse #3 le: décembre 19, 2009, 09:32:14 am »

Bonjour,

C'est poooo propre ton code......   >:(

Tu commets une première erreur en écrivant ton code directement sur les movieclip.

Il faut perdre cette mauvaise habitude et proscrire les sites qui propose des choses comme çà car si un jour tu passes à AS3 tu ne pourras plus le faire. Ensuite même si tu restes en AS2 ton code n'est pas facilement modifiable dans le temps. Cette manière de programmer date de AS1.

Les règles pour une bonne programmation

Dans une anim Flash chaque MovieClip (MC) que tu souhaites manipuler par programmation doit avoir un nom d'occurrence dans les propriétés.

Ensuite sur un calque à part il suffit pour agir sur le MC d'écrire tes instructions sous la forme :

chemin pour atteindre le MC.nom du MC à manipuler.action à faire(paramètres)


Principe
Je considère que les trois zones doivent être grattées pour déclencher le clip final. Le grattage consistant à repérer quand le bouton de la souris est enfoncé (début de grattage) et quand il est relâché (fin de grattage)

Pour gérer quelle zone est grattée et quelle zone ne l'est pas j'utilise dans mon code une variable tableau (une variable tableau c'est comme une armoire avec des étagères. Chaque étagère porte un numéro allant de zéro à x)

Je pose sur chaque étagère la valeur false
Dès qu'une zone est grattée (c'est à dire dés que le bouton de souris est enfoncé dessus) je repère le numéro de la zone de grattage (0,1,2) et je bascule dans mon tableau la valeur false sur true, si besoin, pour l'étagère de même numéro.
Lorsque le bouton de la souris est relâché,  je parcours mon tableau pour voir si toute les étagères contiennent true.

Dés que cela arrive, j'affiche le message de félicitation

Organisation
Sur la scène, je pose trois MC ayant chacun un nom d'occurrence comme : gratte0, gratte1, gratte2 .Je rajoute un autre MC que je nomme fin. Il contient le message de félicitation.

Pour faire propre je pose chaque MC sur un calque différent (c'est une bonne habitude à prendre)


Le code
//Gestion des zones a gratter
function gestionBouton(MCActif:MovieClip,numeroClip:Number):Void{
//Lorsque je clic sur une zone
MCActif.onPress=function(Void):Void {
//si dans le tableau etat à la position numeroClip j'ai false
if(!etat[numeroClip]){
//alors je remplace par true
etat[numeroClip]=true
}
}
//Lorsque je lache le bouton de la souris
MCActif.onRelease=function(Void):Void {
//J'initialise un compteur
var compteur:Number=0
//Je balaye mon tableau et je compte combien j'ai de true
for(var i:Number=0;i<3;i++){
//lorsque j'ai true j'augmente mon compteur de 1
if(etat[i]){
compteur++
}
}
//Si mon compteur = 3 j'ai donc cliqué sur chaque zone de grattage
if(compteur==3){
//Alors j'affiche bravo
fin._visible=true
}
}
}
//Initialisation de la scene
var scene:MovieClip=this
//Création d'un tableau de 3 cases contenant la valeur false
var etat:Array=new Array(false,false,false)
//Je masque le MC de félicitation
fin._visible=false
//Je lance le moteur chargé de créer les boutons
for(var i:Number=0;i<3;i++){
gestionBouton(scene["gratte"+i],i)
}
stop()


Et voilà.....

« Modifié: décembre 19, 2009, 09:35:26 am par RMistral (Wisi) »
IP archivée
Savoir mal est pire qu'ignorer
 



Wisibility est un sité dédié à la formation aux métiers l’image. Vous y trouverez différentes ressources vous aidant à maîtriser les logiciels graphiques tels que Photoshop, Lightroom, Illustrator, InDesign, Flash… Aujourd’hui, Wisibility réunie plus d'une vingtaine d’experts, intervenant en Entreprise pour former graphistes, webdesigners, développeurs web, photographes, monteurs, trucistes…
Depuis 2006 nous nous sommes spécialisés dans les tutoriels vidéos permettant de se former à distance. Notre forum très actif, géré par une équipe de bénévoles répondra à vos demandes. Vous pourrez également profiter de nos émissions et reportages sur la Wisi TV.
Contact - Wisibility est une marque déposée

Blog - Tutoriels - Wisi TV - Forum