Erysokoban v1.02 cs4 as3

Description

Tout le monde connait le célèbre jeu Sokoban ! Oui je sais, c'est un jeu pour vieux, sans fusils, bombes, lasers, et cibles à détruire, mais c'est très bénéfique pour développer le sens de la réflexion.

Là, c'est du pur AS3, avec les images et les sons passés en classes. Il n'y a qu'un fichier .as, mais chacun fait son lit comme il dort. Ceux qui veulent faire des petits codes sur des confettis, en ont le droit, mais personnellement, je préfère tout avoir à portée de main. Les commentaires dans la source sont absents, mais je ne trouve pas utile de traduire de l'as3 en bon vieux Français. D'ailleurs, les noms des fonctions et des variables sont assez explicites.

Cette source affiche les tableaux Sokoban à partir de fichiers xml. La mise en place des tableaux m'a posée quelques petits soucis, et je vais essayer de vous expliquer le pourquoi. En faisant un "addChild" d'un objet Bitmap, il faut le supprimer du "Stage", sinon les images s'empilent les unes sur les autres, et les ressources µP augmentent très vite. A chaque fois que le tableau doit être rafraichi, il faut supprimer les anciens enfants. L'astuce est de garder dans une variable le premier enfant du tableau, de compter dans une autre variable le nombres d'enfants. Pour supprimer les enfants, il suffit de faire un "removeChild" du premier enfant, et cela autant de fois qu'il y a eu d'enfants affichés. Si le premier avait le numéro 2, après suppression le deuxième enfant va se retrouver à la même place, c'est-à-dire au numéro 2.

Je vous laisse analyser la logique de gestion des caisses, des emplacements, et du pion, qui a été optimisée. Quant au graphisme, il est basique, mais à quoi bon épater la galerie avec des effets qui bouffent des ressources µP pour rien ! Il doit y avoir 1800 tableaux Sokoban à résoudre, donc vous avez de quoi faire. Le seul petit problème en mode local, c'est qu'il n'y a pas de moyen pour garder les scores obtenus. Pour cela, il faut mettre l'application flash sur un serveur, et passer par des fonctions php. Elles ne sont pas présentes, mais libre à vous de les développer sur votre site d'hébergement.

Le swf présent ne peut pas fonctionner sur FlashKod, puisque toutes tentatives de lecture d'un fichier sont bloquées. L'accès aux fichiers xml est donc interdit. Mais l'application fonctionne sur votre PC

Source / Exemple :


package
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.utils.Timer;
	import flash.events.*;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.text.TextFormat;
		
	public class erysokoban extends MovieClip
	{
		private const MUR:image_mur = new image_mur(32, 32);
		private const RANGEMENT:image_rangement = new image_rangement(32, 32);
		private const EMPLACEMENT:image_emplacement = new image_emplacement(32, 32);
		private const CAISSE_ROUGE:image_caisse_rouge = new image_caisse_rouge(32, 32);
		private const CAISSE_VERTE:image_caisse_verte = new image_caisse_verte(32, 32);
		private const CAISSE_JAUNE:image_caisse_jaune = new image_caisse_jaune(32, 32);
		private const BOING:son_boing = new son_boing();
		private const BRAVO:son_bravo = new son_bravo();
		private const LOGIN:son_login = new son_login();
		private const TAC:son_tac = new son_tac();
		private const WHOOSH:son_whoosh = new son_whoosh();
		private const PLOC:son_ploc = new son_ploc();
		private var tableau:Array = new Array();
		private var position_depart_x:Array = new Array();
		private var position_depart_y:Array = new Array();
		private var titre:Array = new Array();
		private var matrice:String;
		private var mouvement:Boolean = false;
		private var rafraichir:Boolean = false;
		private var position_x:int = 1;
		private var position_y:int = 2;
		private var nombre_enfant:int = 0;
		private var premier_enfant:int;
		private var compteur_mouvement:int;
		private var compteur_poussee:int;
		private var timer_temps:Timer;
		private var timer_effet:Timer;
		private var compteur_seconde:int;
		private var sauvegarde_matrice:Array;
		private var sauvegarde_position_x:Array;
		private var sauvegarde_position_y:Array;
		private var pointeur_tableau:int;
		private var sens_effet_pion:Boolean = false;
		
		public function erysokoban():void
		{
			this.fond_presentation.bouton_aenigma.addEventListener(MouseEvent.CLICK, action_bouton_aenigma);
			this.fond_presentation.bouton_bagatelle_1.addEventListener(MouseEvent.CLICK, action_bouton_bagatelle_1);
			this.fond_presentation.bouton_bagatelle_2.addEventListener(MouseEvent.CLICK, action_bouton_bagatelle_2);
			this.fond_presentation.bouton_boxxle_1_1.addEventListener(MouseEvent.CLICK, action_bouton_boxxle_1_1);
			this.fond_presentation.bouton_boxxle_1_2.addEventListener(MouseEvent.CLICK, action_bouton_boxxle_1_2);
			this.fond_presentation.bouton_boxxle_1_3.addEventListener(MouseEvent.CLICK, action_bouton_boxxle_1_3);
			this.fond_presentation.bouton_boxxle_2_1.addEventListener(MouseEvent.CLICK, action_bouton_boxxle_2_1);
			this.fond_presentation.bouton_boxxle_2_2.addEventListener(MouseEvent.CLICK, action_bouton_boxxle_2_2);
			this.fond_presentation.bouton_boxxle_2_3.addEventListener(MouseEvent.CLICK, action_bouton_boxxle_2_3);
			this.fond_presentation.bouton_cantrip_1.addEventListener(MouseEvent.CLICK, action_bouton_cantrip_1);
			this.fond_presentation.bouton_cantrip_2.addEventListener(MouseEvent.CLICK, action_bouton_cantrip_2);
			this.fond_presentation.bouton_dh_1.addEventListener(MouseEvent.CLICK, action_bouton_dh_1);
			this.fond_presentation.bouton_dh_2.addEventListener(MouseEvent.CLICK, action_bouton_dh_2);
			this.fond_presentation.bouton_dimitri.addEventListener(MouseEvent.CLICK, action_bouton_dimitri);
			this.fond_presentation.bouton_grig_2001.addEventListener(MouseEvent.CLICK, action_bouton_grig_2001);
			this.fond_presentation.bouton_grig_2002.addEventListener(MouseEvent.CLICK, action_bouton_grig_2002);
			this.fond_presentation.bouton_handemade.addEventListener(MouseEvent.CLICK, action_bouton_handemade);
			this.fond_presentation.bouton_heytak.addEventListener(MouseEvent.CLICK, action_bouton_heytak);
			this.fond_presentation.bouton_howard_1.addEventListener(MouseEvent.CLICK, action_bouton_howard_1);
			this.fond_presentation.bouton_howard_2.addEventListener(MouseEvent.CLICK, action_bouton_howard_2);
			this.fond_presentation.bouton_howard_3.addEventListener(MouseEvent.CLICK, action_bouton_howard_3);
			this.fond_presentation.bouton_howard_4.addEventListener(MouseEvent.CLICK, action_bouton_howard_4);
			this.fond_presentation.bouton_loma.addEventListener(MouseEvent.CLICK, action_bouton_loma);
			this.fond_presentation.bouton_mael_strm.addEventListener(MouseEvent.CLICK, action_bouton_mael_strm);
			this.fond_presentation.bouton_masmicroban.addEventListener(MouseEvent.CLICK, action_bouton_masmicroban);
			this.fond_presentation.bouton_massasquatch.addEventListener(MouseEvent.CLICK, action_bouton_massasquatch);
			this.fond_presentation.bouton_micro_cosmos.addEventListener(MouseEvent.CLICK, action_bouton_micro_cosmos);
			this.fond_presentation.bouton_mini_cosmos.addEventListener(MouseEvent.CLICK, action_bouton_mini_cosmos);
			this.fond_presentation.bouton_nabo_cosmos.addEventListener(MouseEvent.CLICK, action_bouton_nabo_cosmos);
			this.fond_presentation.bouton_pico_cosmos.addEventListener(MouseEvent.CLICK, action_bouton_pico_cosmos);
			this.fond_presentation.bouton_sasquatch_1.addEventListener(MouseEvent.CLICK, action_bouton_sasquatch_1);
			this.fond_presentation.bouton_sasquatch_2.addEventListener(MouseEvent.CLICK, action_bouton_sasquatch_2);
			this.fond_presentation.bouton_sasquatch_3.addEventListener(MouseEvent.CLICK, action_bouton_sasquatch_3);
			this.fond_presentation.bouton_sasquatch_4.addEventListener(MouseEvent.CLICK, action_bouton_sasquatch_4);
			this.fond_presentation.bouton_sasquatch_5.addEventListener(MouseEvent.CLICK, action_bouton_sasquatch_5);
			this.fond_presentation.bouton_soko_blue.addEventListener(MouseEvent.CLICK, action_bouton_soko_blue);
			this.fond_presentation.bouton_soko_mind.addEventListener(MouseEvent.CLICK, action_bouton_soko_mind);
			this.fond_presentation.bouton_sokoban.addEventListener(MouseEvent.CLICK, action_bouton_sokoban);
			this.fond_presentation.bouton_sokogen.addEventListener(MouseEvent.CLICK, action_bouton_sokogen);
			this.fond_presentation.bouton_sven_snya.addEventListener(MouseEvent.CLICK, action_bouton_sven_snya);
			this.fond_presentation.bouton_yioshio_1.addEventListener(MouseEvent.CLICK, action_bouton_yioshio_1);
			this.fond_presentation.bouton_yioshio_2.addEventListener(MouseEvent.CLICK, action_bouton_yioshio_2);
			this.bouton_arriere.addEventListener(MouseEvent.CLICK, action_bouton_arriere);
			this.bouton_avant.addEventListener(MouseEvent.CLICK, action_bouton_avant);
			this.bouton_menu.addEventListener(MouseEvent.CLICK, action_bouton_menu);
			this.bouton_reset.addEventListener(MouseEvent.CLICK, action_bouton_reset);
			this.bouton_annuler.addEventListener(MouseEvent.CLICK, action_bouton_annuler);
			this.bouton_enregistrer.addEventListener(MouseEvent.CLICK, action_bouton_enregistrer);
			this.bouton_bruitage_on.addEventListener(MouseEvent.CLICK, action_bouton_bruitage_on);
			this.bouton_bruitage_off.addEventListener(MouseEvent.CLICK, action_bouton_bruitage_off);
			bouton_enregistrer.visible = false;
			bouton_bruitage_off.visible = false;
			gestion_bouton(false);
			timer_effet = new Timer(100);
			timer_effet.start();
			timer_effet.addEventListener(TimerEvent.TIMER, action_timer_effet);
		}
		private function gestion_bouton(visibilite:Boolean):void
		{
			bouton_arriere.visible = visibilite;
			bouton_avant.visible = visibilite;
			bouton_menu.visible = visibilite;
			bouton_annuler.visible = visibilite;
			bouton_reset.visible = visibilite;
		}
		private function ajouter_element(piece:String, xx:int, yy:int):void
		{
			var image:Bitmap = new Bitmap;
			switch (piece)
			{
				case "M" :  image = new Bitmap(MUR); break;
				case "L" :  image = new Bitmap(EMPLACEMENT); break;
				case "P" :  image = new Bitmap(RANGEMENT); break;
				case "V" :  image = new Bitmap(CAISSE_VERTE); break;
				case "R" :  image = new Bitmap(CAISSE_ROUGE); break;
				case "J" :  image = new Bitmap(CAISSE_JAUNE); break;
				default  :  return;
			}
			this.addChild(image);
			if (nombre_enfant == 0) premier_enfant = getChildIndex(image);
			nombre_enfant ++;
			image.x = xx * image.width;
			image.y = yy * image.height;
		}
		private function charger_tableau(numero:int):void
		{
			matrice = tableau[numero];
			formater_texte(texte_tableau, "Tableau : " + titre[numero], false, false, 0xFFFFFF);
			texte_tableau.text = "Tableau : " + titre[numero];
			position_x = position_depart_x[numero];
			position_y = position_depart_y[numero];
			afficher_tableau();
			this.addChild(pion);
			compteur_mouvement = 0;
			compteur_poussee = 0;
			compteur_seconde = 0;
			action_timer_temps(null);
			afficher_score();
			stage.addEventListener(KeyboardEvent.KEY_DOWN, action_touche_enfoncee);
			stage.addEventListener(KeyboardEvent.KEY_UP, action_touche_relachee);
			timer_temps = new Timer(1000);
			timer_temps.addEventListener(TimerEvent.TIMER, action_timer_temps);
			timer_temps.start();
			sauvegarde_matrice = new Array();
			sauvegarde_position_x = new Array();
			sauvegarde_position_y = new Array();
			jouer_son(0);
		}
		private function afficher_tableau():void
		{
			gestion_gosse();
			for (var i:int = 0; i < 25; i++)
			{
				for (var j:int = 0; j < 20; j++)
				{
					ajouter_element(matrice.charAt(j + (i * 20)), i, j);
				}
			}
		}
		private function gestion_gosse():void
		{
			this.removeChild(pion);
			if (nombre_enfant != 0) {for (var i:int = 0; i < nombre_enfant; i++) this.removeChildAt(premier_enfant);}
			nombre_enfant = 0;
		}
		private function gestion_deplacement(direction:String):void
		{
			if (mouvement) return; else mouvement = true;
			var numero_case_1:int, numero_case_2:int;
			var piece_1:String, piece_2:String;
			var action:Boolean = false;
			rafraichir = false;
			switch (direction)
			{
				case "H" :
					numero_case_1 = position_x * 20  + position_y - 1;
					numero_case_2 = position_x * 20  + position_y - 2;
					break;
				case "B" :
					numero_case_1 = position_x * 20  + position_y + 1;
					numero_case_2 = position_x * 20  + position_y + 2;
					break;
				case "G" :
					numero_case_1 = position_x * 20  + position_y - 20;
					numero_case_2 = position_x * 20  + position_y - 40;
					break;
				case "D" :
					numero_case_1 = position_x * 20  + position_y + 20;
					numero_case_2 = position_x * 20  + position_y + 40;
					break;
			}
			piece_1 = matrice.charAt(numero_case_1);
			piece_2 = matrice.charAt(numero_case_2);
			if (piece_1 == "L" || piece_1 == "P")
			{
				jouer_son(1);
				compteur_mouvement ++;
				action = true;
			}
			else if (piece_1 == "V" && piece_2 == "L")
			{
				gestion_sokoban();
				matrice = remplacer_caractere(matrice, numero_case_1, "L");
				matrice = remplacer_caractere(matrice, numero_case_2, "V");
				action = true;
			}
			else if (piece_1 == "V" && piece_2 == "P")
			{
				gestion_sokoban();
				matrice = remplacer_caractere(matrice, numero_case_1, "L");
				matrice = remplacer_caractere(matrice, numero_case_2, "R");
				action = true;
			}
			else if (piece_1 == "R" && piece_2 == "L")
			{
				gestion_sokoban();
				matrice = remplacer_caractere(matrice, numero_case_1, "P");
				matrice = remplacer_caractere(matrice, numero_case_2, "V");
				action = true;
			}
			else if (piece_1 == "R" && piece_2 == "P")
			{
				gestion_sokoban();
				matrice = remplacer_caractere(matrice, numero_case_1, "P");
				matrice = remplacer_caractere(matrice, numero_case_2, "R");
				action = true;
			}
			else jouer_son(2);
			if (action)
			{
				switch (direction)
				{
					case "H" : position_y--; break;
					case "B" : position_y++; break;
					case "G" : position_x--; break;
					case "D" : position_x++; break;
				}
			}
			afficher_score();
			if (rafraichir) afficher_tableau();
			this.addChild(pion);
			test_fin_partie();
		}
		private function test_fin_partie():void
		{
			if (matrice.indexOf("V") < 0)
			{
				stage.removeEventListener(KeyboardEvent.KEY_DOWN, action_touche_enfoncee);
				stage.removeEventListener(KeyboardEvent.KEY_UP, action_touche_relachee);
				timer_temps.stop();
				jouer_son(4);
			}
		}
		private function afficher_score():void
		{
			texte_mouvement.text = "Move : " +  compteur_mouvement.toString();
			texte_poussee.text = "Push : " +  compteur_poussee.toString();
		}
		private function gestion_sokoban():void
		{
			compteur_mouvement ++;
			compteur_poussee ++;
			sauvegarde_matrice.push(matrice);
			sauvegarde_position_x.push(position_x);
			sauvegarde_position_y.push(position_y);
			jouer_son(3);
		}
		private function recul_position():void
		{
			if (sauvegarde_matrice.length > 0)
			{
				matrice = sauvegarde_matrice.pop();
				position_x = sauvegarde_position_x.pop();
				position_y = sauvegarde_position_y.pop();
				afficher_tableau();
				this.addChild(pion);
				jouer_son(5);
			}
		}
		private function remplacer_caractere(texte, position, caractere):String
		{
			rafraichir = true;
		   	var debut_texte = texte.substring(0, position);
		   	var fin_texte = texte.substring(position + 1, texte.length);
		   	texte = debut_texte + caractere + fin_texte;
		   	return texte;
		}
		private function jouer_son(numero:int):void
		{
			if (bouton_bruitage_off.visible) return;
			var son:Sound = new Sound();
			var canal:SoundChannel = new SoundChannel();
			switch (numero)
			{
				case 0 : son = LOGIN; break;
				case 1 : son = PLOC; break;
				case 2 : son = BOING; break;
				case 3 : son = WHOOSH; break;
				case 4 : son = BRAVO; break;
				case 5 : son = TAC; break;
				default : return;
			}
			canal = son.play();
		}
		private function chargement_liste_xml(url_xml:String):void
		{
			var chargeur_xml:URLLoader = new URLLoader();
			chargeur_xml.addEventListener(Event.COMPLETE, fin_chargement_liste_xml);
			chargeur_xml.addEventListener(IOErrorEvent.IO_ERROR, erreur_chargement);
			chargeur_xml.addEventListener(SecurityErrorEvent.SECURITY_ERROR, erreur_securite);
			chargeur_xml.load(new URLRequest(url_xml));
		}
		private function conversion_horloge(valeur:int):String
		{
			var heure:String = int(valeur / 3600).toString();
			if (heure.length == 1) minute = "0" + minute;
			valeur = valeur - int(heure) * 3600;
			var minute:String = int(valeur / 60).toString();
			if (minute.length == 1) minute = "0" + minute;
			valeur = valeur - int(minute) * 60;
			var seconde:String = valeur.toString();
			if (seconde.length == 1) seconde = "0" + seconde;
			return (heure + ":" + minute + ":" + seconde);
		}
		private function formater_texte(objet_texte:Object, texte_objet:String, gras:Boolean, italique:Boolean, couleur:int):void
		{
			var format_texte:TextFormat = new TextFormat();
			format_texte.bold = gras;
			format_texte.italic = italique;
			format_texte.color = couleur;
			objet_texte.text = texte_objet;
			objet_texte.setTextFormat(format_texte);
		}
		// Evènements ================================================================================================================
		private function action_bouton_aenigma(e:MouseEvent):void {chargement_liste_xml("./soko/liste_aenigma.xml");}
		private function action_bouton_bagatelle_1(e:MouseEvent):void {chargement_liste_xml("./soko/liste_bagatelle_1.xml");}
		private function action_bouton_bagatelle_2(e:MouseEvent):void {chargement_liste_xml("./soko/liste_bagatelle_2.xml");}
		private function action_bouton_boxxle_1_1(e:MouseEvent):void {chargement_liste_xml("./soko/liste_boxxle_1_1.xml");}
		private function action_bouton_boxxle_1_2(e:MouseEvent):void {chargement_liste_xml("./soko/liste_boxxle_1_2.xml");}
		private function action_bouton_boxxle_1_3(e:MouseEvent):void {chargement_liste_xml("./soko/liste_boxxle_1_3.xml");}
		private function action_bouton_boxxle_2_1(e:MouseEvent):void {chargement_liste_xml("./soko/liste_boxxle_2_1.xml");}
		private function action_bouton_boxxle_2_2(e:MouseEvent):void {chargement_liste_xml("./soko/liste_boxxle_2_2.xml");}
		private function action_bouton_boxxle_2_3(e:MouseEvent):void {chargement_liste_xml("./soko/liste_boxxle_2_3.xml");}
		private function action_bouton_cantrip_1(e:MouseEvent):void {chargement_liste_xml("./soko/liste_cantrip_1.xml");}
		private function action_bouton_cantrip_2(e:MouseEvent):void {chargement_liste_xml("./soko/liste_cantrip_2.xml");}
		private function action_bouton_dh_1(e:MouseEvent):void {chargement_liste_xml("./soko/liste_dh_1.xml");}
		private function action_bouton_dh_2(e:MouseEvent):void {chargement_liste_xml("./soko/liste_dh_2.xml");}
		private function action_bouton_dimitri(e:MouseEvent):void {chargement_liste_xml("./soko/liste_dimitri.xml");}
		private function action_bouton_grig_2001(e:MouseEvent):void {chargement_liste_xml("./soko/liste_grig_2001.xml");}
		private function action_bouton_grig_2002(e:MouseEvent):void {chargement_liste_xml("./soko/liste_grig_2002.xml");}
		private function action_bouton_handemade(e:MouseEvent):void {chargement_liste_xml("./soko/liste_handemade.xml");}
		private function action_bouton_heytak(e:MouseEvent):void {chargement_liste_xml("./soko/liste_heytak.xml");}
		private function action_bouton_howard_1(e:MouseEvent):void {chargement_liste_xml("./soko/liste_howard_1.xml");}
		private function action_bouton_howard_2(e:MouseEvent):void {chargement_liste_xml("./soko/liste_howard_2.xml");}
		private function action_bouton_howard_3(e:MouseEvent):void {chargement_liste_xml("./soko/liste_howard_3.xml");}
		private function action_bouton_howard_4(e:MouseEvent):void {chargement_liste_xml("./soko/liste_howard_4.xml");}
		private function action_bouton_loma(e:MouseEvent):void {chargement_liste_xml("./soko/liste_loma.xml");}
		private function action_bouton_mael_strm(e:MouseEvent):void {chargement_liste_xml("./soko/liste_mael_strm.xml");}
		private function action_bouton_masmicroban(e:MouseEvent):void {chargement_liste_xml("./soko/liste_masmicroban.xml");}
		private function action_bouton_massasquatch(e:MouseEvent):void {chargement_liste_xml("./soko/liste_massasquatch.xml");}
		private function action_bouton_micro_cosmos(e:MouseEvent):void {chargement_liste_xml("./soko/liste_micro_cosmos.xml");}
		private function action_bouton_mini_cosmos(e:MouseEvent):void {chargement_liste_xml("./soko/liste_mini_cosmos.xml");}
		private function action_bouton_nabo_cosmos(e:MouseEvent):void {chargement_liste_xml("./soko/liste_nabo_cosmos.xml");}
		private function action_bouton_pico_cosmos(e:MouseEvent):void {chargement_liste_xml("./soko/liste_pico_cosmos.xml");}
		private function action_bouton_sasquatch_1(e:MouseEvent):void {chargement_liste_xml("./soko/liste_sasquatch_1.xml");}
		private function action_bouton_sasquatch_2(e:MouseEvent):void {chargement_liste_xml("./soko/liste_sasquatch_2.xml");}
		private function action_bouton_sasquatch_3(e:MouseEvent):void {chargement_liste_xml("./soko/liste_sasquatch_3.xml");}
		private function action_bouton_sasquatch_4(e:MouseEvent):void {chargement_liste_xml("./soko/liste_sasquatch_4.xml");}
		private function action_bouton_sasquatch_5(e:MouseEvent):void {chargement_liste_xml("./soko/liste_sasquatch_5.xml");}
		private function action_bouton_soko_blue(e:MouseEvent):void {chargement_liste_xml("./soko/liste_soko_blue.xml");}
		private function action_bouton_soko_mind(e:MouseEvent):void {chargement_liste_xml("./soko/liste_soko_mind.xml");}
		private function action_bouton_sokoban(e:MouseEvent):void {chargement_liste_xml("./soko/liste_sokoban.xml");}
		private function action_bouton_sokogen(e:MouseEvent):void {chargement_liste_xml("./soko/liste_sokogen.xml");}
		private function action_bouton_sven_snya(e:MouseEvent):void {chargement_liste_xml("./soko/liste_sven_snya.xml");}
		private function action_bouton_yioshio_1(e:MouseEvent):void {chargement_liste_xml("./soko/liste_yioshio_1.xml");}
		private function action_bouton_yioshio_2(e:MouseEvent):void {chargement_liste_xml("./soko/liste_yioshio_2.xml");}
		private function action_bouton_arriere(e:MouseEvent):void
		{
			if (pointeur_tableau > 0)
			{
				timer_temps.stop();
				pointeur_tableau --;
				charger_tableau(pointeur_tableau);
			}
		}
		private function action_bouton_avant(e:MouseEvent):void
		{
			if (pointeur_tableau < tableau.length - 1)
			{
				timer_temps.stop();
				pointeur_tableau ++;
				charger_tableau(pointeur_tableau);
			}
		}
		private function action_bouton_menu(e:MouseEvent):void
		{
			gestion_gosse();
			gestion_bouton(false);
			this.fond_presentation.visible = true;
			addChild(pion);
			position_x = 1;
			position_y = 2;
			timer_temps.stop();
		}
		private function action_bouton_enregistrer(e:MouseEvent):void {}
		private function action_bouton_annuler(e:MouseEvent):void {recul_position();}

		private function action_bouton_reset(e:MouseEvent):void
		{
			timer_temps.stop();
			charger_tableau(pointeur_tableau);
		}
		private function action_bouton_bruitage_on(e:MouseEvent):void
		{
			bouton_bruitage_on.visible = false;
			bouton_bruitage_off.visible = true;
		}
		private function action_bouton_bruitage_off(e:MouseEvent):void
		{
			bouton_bruitage_on.visible = true;
			bouton_bruitage_off.visible = false;
		}
		private function action_touche_relachee(e:KeyboardEvent):void {mouvement = false;}
		private function action_touche_enfoncee(e:KeyboardEvent):void
		{
			if (e.keyCode == Keyboard.UP) gestion_deplacement("H");
			if (e.keyCode == Keyboard.RIGHT) gestion_deplacement("D");
			if (e.keyCode == Keyboard.DOWN) gestion_deplacement("B");
			if (e.keyCode == Keyboard.LEFT) gestion_deplacement("G");
		}
		private function fin_chargement_liste_xml(e:Event):void
		{
			this.fond_presentation.visible = false;
			var texte_xml:XML = new XML(e.target.data);
			var tableaux:XMLList = texte_xml.elements();
			tableau = new Array();
			position_depart_x = new Array();
			position_depart_y = new Array();
			titre = new Array();
			for each (var ligne:XML in tableaux)
			{
				tableau.push(ligne.tableau);
				position_depart_x.push(int(ligne.positionX));
				position_depart_y.push(int(ligne.positionY));
				titre.push(ligne.titre);
			}
			charger_tableau(0);
			pointeur_tableau = 0;
			gestion_bouton(true);
		}
		private function erreur_chargement(e:IOErrorEvent):void {}
		private function erreur_securite(e:SecurityErrorEvent):void {}
		private function action_timer_temps(e:TimerEvent):void
		{
			texte_temps.text = "Time : " + conversion_horloge(compteur_seconde);
			compteur_seconde ++;
		}
		private function action_timer_effet(e:TimerEvent):void
		{
			if (!sens_effet_pion)
			{
				pion.width --;
				pion.height --;
				if (pion.width <= 16) sens_effet_pion = true;
			}
			else
			{
				pion.width ++;
				pion.height ++;
				if (pion.width >= 32) sens_effet_pion = false;
			}
			pion.x = ((32 - pion.width) / 2) + position_x * 32;
			pion.y = ((32 - pion.height) / 2) + position_y * 32;
		}
	}
}

Conclusion :


Vous pouvez utiliser et modifier cette source à votre gré.

Codes Sources

A voir également

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.