Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import fl.transitions.Tween;
- import fl.transitions.easing.*;
- import fl.transitions.TweenEvent;
- import flash.utils.Dictionary;
- import flash.display.Sprite;
- import flash.events.MouseEvent;
- /*Définition des fontions en haut (ça plante moins) */
- /**
- * Fonction run
- * deplace l'objet suivant si le jeu n'est pas fini
- **/
- function run():void {
- //Début du jeu
- if(objetDeplace == 0) {
- prettyTalk("Bonjour et Bienvenue !\nSauras-tu jeter tes détritus dans la bonne poubelle ?");
- deplacementInitial(objets[objetDeplace]); //on déplace l'objet
- }
- else if(objetDeplace < maxObjets) {
- deplacementInitial(objets[objetDeplace]); //on déplace l'objet
- } else {
- if(score >= 0 && score <= 3) {
- speechDeFin("Pollueur ! Payeur ! Tu peux vraiment faire mieux ?");
- } else if(score >= 4 && score <= 7) {
- speechDeFin("Tu fais encore des erreurs : ce n'est pas excusable !");
- } else if(score >=8 && score <= 9) {
- speechDeFin("Pas mal !");
- } else {
- speechDeFin("Enfin, quelqu'un d'éco-responsable ! Saurais-tu reproduire ce résultat à chaque fois ?");
- }
- }
- }
- /**
- * Fonction deplacementInitial
- * Déplace l'objet donné sur le plateau
- **/
- function deplacementInitial(obj, temps = 1) {
- var positionPlateau = new Dictionary();
- /*Définition de la position sur le plateau*/
- positionPlateau['x'] = 463 - obj.width/2;
- positionPlateau['y'] = 170 - obj.height;
- //Référence de Tween : (http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/fl/transitions/Tween.html)
- //Tween(obj:Object, prop:String, func:Function, begin:Number, finish:Number, duration:Number, useSeconds:Boolean = false)
- //Déplace l'objet sur le plateau, surement à revoir en fonction des objets
- var deplacementx:Tween = new Tween(obj, "x", Strong.easeOut, obj.x, positionPlateau['x'], temps, true);
- var deplacementy:Tween = new Tween(obj, "y", Strong.easeOut, obj.y, positionPlateau['y'], temps, true);
- //(ré)activation du listener
- obj.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
- obj.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
- }
- /**
- * Fonction testMatch
- * Teste si l'objet à été mis dans la bonne poubelle
- **/
- function testMatch(target, obj) {
- //Si l'objet = la valeur de dict[objet_depose]
- if( dict[target.parent].indexOf(obj) != -1 ) {
- prettyTalk('Bravo ! Encore réussi !');
- score++;
- } else {
- prettyTalk('Loupé cette fois-ci : tu feras peut-être mieux une autre fois');
- }
- //passe l'objet à 0.5 d'opacité
- target.parent.alpha = 0.5;
- setChildIndex(obj, 0);
- //On augmente le nb d'objets déplacés
- objetDeplace++;
- score_texte.text = score;
- //Et on relance le tout
- run();
- }
- // Définit l´événement mouse down handler (l´utilisateur déplace l´objet)
- function mouseDownHandler(evt:MouseEvent):void {
- var obj = evt.target;
- // limite le déplacement à l´intérieur du canevas
- obj.startDrag();
- }
- // Lorqu'on lache le curseur
- function mouseUpHandler(evt:MouseEvent):void {
- var obj = evt.target;
- obj.stopDrag(); //stop le drag
- //Si on déplace pdt l'animation ça foire, donc je désactive le listener
- obj.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
- obj.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
- fermerLesPoubelles(); //on ferme les poubelles
- // obj.dropTarget donne la référence de la forme de l´objet sur laquelle on a déposé l'objet
- var target = obj.dropTarget;
- // Si l´objet existe on fais le test
- if (target != null && objetsSansDrop.indexOf(target.parent) == -1 )
- {
- testMatch(target, obj);
- }
- else
- {
- deplacementInitial(obj, 1); //sinon on le remet sur le plateau
- }
- }
- function ouvrirPoubelle(evt : MouseEvent) : void {
- var clip:MovieClip = MovieClip(evt.target);
- for each (var poubelle in poubelles) {
- couvercles[poubelle].rotation = 0;
- if(clip.hitTestObject(poubelle)) // or use hitTestObject
- {
- if(couvercles[poubelle].rotation == 0)
- couvercles[poubelle].rotation -= 30;
- }
- }
- }
- function fermerLesPoubelles() {
- for each (var poubelle in poubelles) {
- couvercles[poubelle].rotation = 0;
- }
- }
- function randomize ( a : *, b : * ) : int {
- return ( Math.random() > .5 ) ? 1 : -1;
- }
- var parle = false;
- function arreteDeParler() {
- lepers.gotoAndStop(1);
- parle = false;
- }
- function prettyTalk(phrase) {
- if(!parle) {
- parle = true;
- champTexte.text = phrase;
- lepers.play();
- setTimeout(arreteDeParler, (phrase.length / 20) *1000);
- } else {
- arreteDeParler();
- prettyTalk(phrase);
- }
- }
- function speechDeFin(phrase) {
- prettyTalk(phrase);
- }
- /* Script */
- //définition du champ de texte où apparaissent les infos
- var champTexte = textField;
- var poubelles = new Array(poubelle_bleu, poubelle_vert, poubelle_gris, poubelle_jaune);
- var objetsSansDrop = new Array(trait_discussion, lepers, couvercle_bleu, couvercle_vert, couvercle_gris, couvercle_jaune, pupitre, header);
- var dict = new Dictionary ();
- //Ici on défini tous nos objets de la façon suivante :
- //dict[objet_arrive] = obj;
- dict[poubelle_bleu] = new Array(pomme, oeuf);
- dict[poubelle_vert] = new Array(bouteille,sauce_tomate);
- dict[poubelle_gris] = new Array(conserve,cannette,couche);
- dict[poubelle_jaune] = new Array(coca, orange, papier);
- var couvercles = new Dictionary ();
- couvercles[poubelle_bleu] = couvercle_bleu;
- couvercles[poubelle_vert] = couvercle_vert;
- couvercles[poubelle_jaune] = couvercle_jaune;
- couvercles[poubelle_gris] = couvercle_gris;
- var maxObjets = 0; //va nous servir à la fin du jeu pour compter chaque objet déposé correctement
- var score = 0;
- var objets:Array = new Array(); //tableau d'objets
- for each (var items in dict)
- {
- for each (var item in items) {
- item.useHandCursor = true; //donne normalement le curseur de main à l'objet qui peut bouger
- item.addEventListener(MouseEvent.MOUSE_MOVE, ouvrirPoubelle);
- //Va stocker les objets numériquement pour qu'on puisse les faire suivre
- objets[maxObjets] = item;
- maxObjets++;
- }
- }
- objets.sort( randomize ); //Met les objets dans un ordre aléatoire
- var objetDeplace = 0; //compteur des objets
- run(); //lance run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement