Ecouteur et cookies en flash (la chasse aux canards)

4/5 (4 avis)

Vue 12 235 fois - Téléchargée 937 fois

Description

Petit jeu pour apprendre à se servir d'un ecouteur et des cookies en Flash. (et à changer le curseur de souris en viseur).

Source / Exemple :


La chasse aux canards:
  
Voici le code utilisé pour le fichier Flash, il y a deux zones de texte dynamiques ("score" et "level"), un clip bullet (liaison "bullet) pour la balle du fusil, un clip target (liaison "target_mc") pour la cible, les deux sons (liaisons "gunfire" et "canard") .

//Ecouteur

// Initialisation du jeu
// Appuyer sur R permet de remettre le score à 0 et le level à 1
ecouteur = new Object(); // Création de l'objet ecouteur
ecouteur.onKeyDown = function () { // Fontion ecouteur

if (Key.isDown(82)){ // Le numéro 82 correspond à la lettre R
_root.level=1; // Initialise le level à 1
_root.score=0; // Initialise le score à 0
}
};
Key.addListener(ecouteur); // Application de l'écouteur
 

//Déclaration  des variables
	

var i; // déclare la variable i qui correspond aux balles

save_score = SharedObject.getLocal("score"); // Charge la sauvegarde du score
trace(save_score.data.valeur); // permet de vérifier sous flash la variable save_score
save_level = SharedObject.getLocal("level"); // Charge la sauvegarde du level
trace(save_level.data.valeur); // permet de vérifier sous flash la variable save_level

var score = save_score.data.valeur; // le score sauvegardé est pris en compte
var level = save_level.data.valeur; // le level sauvegardé est pris en compte
if (!level) { // si il n'y pas de sauvegarde (level)
level =1; // on part du level 1
score =0; // avec le score égal à 0
}

// Sons du fusil (gunfire) et du canard (canard)
var gunfire = new Sound(); // déclaration de la variable son "gunfire"
gunfire.attachSound("gunfire"); // on lui attache le son gunfire (liaison dans la bibliothèque)
var canard = new Sound(); // déclaration de la variable son "canard"
canard.attachSound("canard"); // on lui attache le son canard (liaison dans la bibliothèque)

//Fonctions
	

// Fonction tir
_root.hit1.onPress = function() { // déclaration de la fonction tir
gunfire.start(); // Le son gunfire se lance
i++; // i (les balles) est incrémenté de 1
_root.bull.duplicateMovieClip("bulletNew", i); // on duplique i (les balles)
if (i == 10) { // Si i (les balles) est égale à 10
i = 0; // i (les balles) redevient égal à 0
}

// si la position de la souris est égale à celle de la cible
if (_root.target_mc.hitTest(_root._xmouse, _root._ymouse, false)) {
_root.gun.gotoAndPlay(2); // passe à l'image 2 du clip gun (la cible avec l'impact)
_root.target_mc._x = 0; // remet la cible à x=0
_root.target_mc._y = random(300); // choisi la position en y de la cible
score +=10; // Le score est incrémenté de 10
canard.start();} // Le son canard se lance
else if (score>0) { score -=2; } // sinon le score est décrémenté de 2
}

_root.onLoad = function() { // onLoad permet de s'assurer que la fonction s'est effectuée
Mouse.hide(); // permet de cacher le curseur de la souris
};

// Positionne le viseur par rapport à la souris
_root.onEnterFrame = function() { // onEnterFrame permet de traiter cette fonction avant les autres
trace(level); // permet de verifier le level sous flash
_root.gun._x = _root._xmouse; // le gun prend la position en x de la souris
_root.gun._y = _root._ymouse; // le gun prend la position en y de la souris

// Déplacement de la cible
if (score>=50){ // si le score arrive à 50
level++; // le level est incrémenté de 1
score=0;} // le score revient à 0

_root.target_mc._x += level*5; // la vitesse de la cible est égale au level x5
if (_root.target_mc._x<0 || _root.target_mc._x>Stage.width) { // si la cible sort de l'écran
_root.target_mc._x = 0; // met la cible à x=0
_root.target_mc._y = random(300); // choisi la position en y de la cible
}

//Sauvegarde
	

// Sauvegarde dans les cookies du score et du level
var save_score:SharedObject = SharedObject.getLocal("score"); // SharedObject permet de lire et stocker des données
save_score.data.valeur = score ; // save_score prends la valeur du score en cours
save_score.flush(); // sauvegarde save_score dans les cookies
var save_level:SharedObject = SharedObject.getLocal("level"); // SharedObject permet de lire et stocker des données
save_level.data.valeur = level ; // save_level prends la valeur du level en cours
save_level.flush(); // sauvegarde save_level dans les cookies
};

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_bali_balo
Messages postés
1381
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
-
un revenant!!! ^^
Peg' is back.

Sinon moi je préfère quand tout est fait dans un seul et même onEnterFrame, et qu'on évite d'utiliser la référence _root ( plutôt utiliser la référence _parent )

>>>pourquoi tu utilises 2 SharedObject.....
même remarque :)


bali_balo....=]
pegase31
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6 -
un SharedObject est, comme son nom l'indique, un objet externe à un swj. Et comme tout objet, il peut contenir des variables, des méthodes, etc ...

Peg'
ricyl2b
Messages postés
12
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2006
-
Je ne le savais pas tout simplement. Merci pour le tuyau.
pegase31
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6 -
question : pourquoi tu utilises 2 SharedObject alors que tu peux mettre 2 variables dans un seul ?

Peg'

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.