Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

JEU AVEC UN LABYRINTHE ALÉATOIRE


Information sur la source

Catégorie :Jeux Classé sous : AS3, génération, labyrinthe, jeu, flash Niveau : Initié Date de création : 23/03/2008 Date de mise à jour : 31/03/2008 13:37:18 Vu / téléchargé: 9 370 / 86 830

Note :
Aucune note

Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Voici ma deuxième source déposée ici et ma première animation de bout en bout en AS3.

Mon challenge initial pour m'initier au nouveau langage était l'écriture en AS3 d'un algorithme de génération de labyrinthe. Pour ne pas réinventer la roue, j'ai adapté le principe décrit par Yann LANGLAIS sur le site http://ilay.org/yann/articles/maze/ et je l'ai transcrit en Actionscript (je le remercie au passage pour son document explicatif clair et précis !).

Le résultat fonctionne mais n'est pas complètement optimisé en terme de coût. Mais pour un labyrinthe allant jusqu'à 50*50 (limite que j'ai fixé dans le jeu) la génération est instantanée.
Le labyrinthe généré étant "parfait" (tout point est relié à tout autre point par au moins un chemin), je me suis dit que dans un deuxième temps j'allais greffer un petit jeu autour du labyrinthe : le but est de faire sortir un petit bonhomme (vue de dessus) le plus rapidement possible, en atteignant le coin inférieur droit du labyrinthe représenté par un rond vert. La touche ESPACE permet un zoom arrière pour visualiser le labyrinthe dans son ensemble.



 

Source

  • Organisation du code :
  • Main : classe Document, gestion des autres objets, du clavier, de la souris, ..
  • Labyrinthe : classe dérivée de Sprite, génère et représente graphiquement le labyrinthe
  • Bonhomme : classe associée au symbole graphique du bonhomme, gère son déplacement et ses collisions avec les murs du labyrinthe
  • Cellule : petite classe utile à l'algo de génération
  • La maniabilité à la souris m'ayant décu, j'ai intégré un déplacement clavier avec les touches fléchées également. Finalement, les deux sont possibles à tout moment.
  • J'ai commenté autant que possible le code. C'est mes premiers pas en AS3, j'ai sans doute du faire des erreurs de conception mais dans l'ensemble j'espère que ca pourra servir aux flasheurs qui ont comme moi "débarqué" dans l'AS3 après un rude apprentissage de l'AS1 et 2. Finalement je dois avouer que le côté très "Java" de l'AS3 n'est pas pour me déplaire :)
  • DEFAUTS :
  • - pas de preloader, le swf ne fait que 72 ko mais bon ca n'empeche pas. J'ai voulu en faire un mais je me suis heurté à plus de difficultés que prévu.
  • - pas de packages : pas vraiment nécessaire à mon goût pour un petit jeu comme ca
  • - ca laggue un peu sur un labyrinthe trop gros... le défilement du sprite est mal géré sur des tailles supérieures à 25/30..
  • - et sans doute pas mal de bugs encore !
Organisation du code :

Main : classe Document, gestion des autres objets, du clavier, de la souris, ..
Labyrinthe : classe dérivée de Sprite, génère et représente graphiquement le labyrinthe
Bonhomme : classe associée au symbole graphique du bonhomme, gère son déplacement et ses collisions avec les murs du labyrinthe
Cellule : petite classe utile à l'algo de génération

La maniabilité à la souris m'ayant décu, j'ai intégré un déplacement clavier avec les touches fléchées également. Finalement, les deux sont possibles à tout moment.

J'ai commenté autant que possible le code. C'est mes premiers pas en AS3, j'ai sans doute du faire des erreurs de conception mais dans l'ensemble j'espère que ca pourra servir aux flasheurs qui ont comme moi "débarqué" dans l'AS3 après un rude apprentissage de l'AS1 et 2. Finalement je dois avouer que le côté très "Java" de l'AS3 n'est pas pour me déplaire :)

DEFAUTS :
- pas de preloader, le swf ne fait que 72 ko mais bon ca n'empeche pas. J'ai voulu en faire un mais je me suis heurté à plus de difficultés que prévu.
- pas de packages : pas vraiment nécessaire à mon goût pour un petit jeu comme ca
- ca laggue un peu sur un labyrinthe trop gros... le défilement du sprite est mal géré sur des tailles supérieures à 25/30..
- et sans doute pas mal de bugs encore !

Conclusion

Un bon exercice personnel qui je l'espère pourra inspirer d'autres codeurs qui se lancent dans Flash et particulièrement l'AS3 qui, au final, présente un confort de programmation largement supérieur aux versions précédentes (à mon goût).
Je ne garantie pas le côté ludique du jeu, moi je préfère concevoir les jeux qu'y jouer !

URL DIRECTE VERS LE JEU :
http://freeplaf.free.fr/flash/labyrinthefou/labyrinthe.html

pour voir mes autres créations flash et des BDs, mon blog est à l'adresse : http://plafpingouin.blogspot.com
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

31 mars 2008 13:35:53 :
31/03/2008 : changement en difficulté "initié", je me rends compte que le code n'est pas forcément très abordable pour quelqu'un qui débute en AS3, surtout que c'est un langage très neuf
31 mars 2008 13:37:18 :
changement en difficulté "initié", je me rends compte que le code n'est pas forcément très abordable pour quelqu'un qui débute en AS3, surtout que c'est un langage très neuf

Commentaires et avis

signaler à un administrateur
Commentaire de rduguez le 24/03/2008 18:39:26

impossible de charger ce projet avec flash 8

( format de fivhier inattendu
Est-ce normal ?

signaler à un administrateur
Commentaire de Burnside le 25/03/2008 10:09:04

Oui c'est du flash CS3

signaler à un administrateur
Commentaire de plaf_falp le 25/03/2008 11:14:26

effectivement il faut impérativement flash CS3 pour ouvrir ce fichier (c'est de l'AS3)
il est tout de même possible de voir l'essentiel du code (toute la couche métier) avec un simple éditeur de texte (fichiers d'extension .as)
il y'a quelques lignes de code dans les frames de la timeline mais très peu, pour les simples besoins de l'interface, et sinon une structure assez simple sur le fichier FLA : étiquettes "intro", "jeu", "aide", "gagne" et un tout ptit peu de graphique.. (le labyrinthe est représenté graphiquement dans une méthode de Labyrinthe.as)

signaler à un administrateur
Commentaire de plaf_falp le 31/03/2008 13:40:30

pas beaucoup de retour sur cette source (je compare à mon autre source de casse briques en Flash 8), j'ai l'impression en parcourant tout le site (forum et sources), que le passage en AS3 est loin d'être répandu chez les codeurs (ce qui peut se comprendre au vue du "gouffre" entre l'AS2 et l'AS3)

y'a t-il des spécialistes des lieux pour confirmer ce sentiment ?

signaler à un administrateur
Commentaire de pegase31 le 01/04/2008 01:05:09 administrateur CS

je ne suis pas forcément un "spécialiste", mais m'étant lancé dans l'as3 depuis 2 mois en "intensif", je peux te dire que le passage est douloureux .. mais une fois dedans, c'est le bonheur pur ;)

Le soucis c'est qu'il y a surtout beaucoup de gens qui ne codaient déjà pas en as2, alors le passe as1/as3 est encore plus violent.
Moi ce que je ne comprend pas c'est pourquoi bosser sur Flash 9 si c'est pour faire de l'as2, il n'y a aucun intérêt ...

Peu de gens font de l'as3 ici en tout cas (si c'était ta question);

Peg'

signaler à un administrateur
Commentaire de plaf_falp le 02/04/2008 10:15:53

je suis allé faire un tour sur tes sources Pegase, tu as l'air d'être costaud en AS1/AS2 mais je n'ai pas vu de source AS3 postée pour le moment. C'est dans tes projets ?

pour exploiter l'AS3 je trouve qu'il faut une certaine habitude des langages objets (Java en particulier, la ressemblance est très forte). Mais le passage n'est pas si sorcier pour la plupart des choses du moment qu'on comprend la display list, les listener pour les évènements et 2/3 autres trucs... après une foule de possibilités supplémentaires sont offertes mais pas indispensables pour débuter

signaler à un administrateur
Commentaire de pegase31 le 02/04/2008 11:35:16 administrateur CS

Comme je t'ai dit, je me suis mis à l'AS3 depuis peu .. de plus mes sources sont prévues pour des entreprises, donc pas libres de droit et je ne peux donc pas les mettre ici. Mais dé que j'ai un truc simple, sympa et dont je suis assez content pour le placer ici-bas, je n'hésiterais pas. Mais comme je ne suis jamais content de moi ...

Pour en revenir à ce que tu dis, il est clair que quand tu regardes les sources dispo ici c'est à 90% du basique et le reste, soit du "mal éclairé", soit du total pro inaccessible aux 90% précités par manque de connaissance.

L'as3 a _un concept totalement différent dans la gestion graphique que l'as1/2 et pour cause : il a été allégé à mort ! Ensuite, le concept de création d'objet "en mémoire" avant de les placer sur la scène n'est pas compréhensible par les non programmeurs qui arrivent sur ce concept (sans parler de la doc de flash 9 qui est assez mal faite, je trouve). Mais je suis curieux de voir les sources AS3 qui tomberont ici dans les mois à venir.

Peg'

signaler à un administrateur
Commentaire de plaf_falp le 02/04/2008 11:49:39

bien sûr je comprends bien que tu ne vas pas mettre tes sources de boulot ici ;)

dans tes deux extrêmes, le "mal éclairé" et "l'ultra pro", je pense que l'intérêt du langage Flash est aussi de trouver un juste milieu, pour obtenir quelque chose de fonctionnel et sympa sans déployer l'usine à gaz dans la conception (et y passer des dizaines d'heures) mais sans avoir du code horrible à lire non plus...
effectivement on verra où se situeront les futures sources AS3 déposées ici

plaf

signaler à un administrateur
Commentaire de plaf_falp le 22/08/2008 18:10:37

hello
une ptite relance pour savoir si des gens qui se seraient mis à l'AS3 ont eu le temps de jeter un oeil sur cette source ? (les stats "vus/téléchargés" doivent être fausses je pense.. ca me parait bcp trop élevé !)
cela dit j'ai pas mal progressé en AS3 depuis (je prépare un ptit jeu pour le concours... si je finis à temps), donc je ne suis pas certain qu'il n'y ait pas de mauvais réflexes sur cette source

bon flashouillage à tous
plaf

signaler à un administrateur
Commentaire de taktik24 le 24/11/2008 23:42:12

hello msieur,
je code en as3 depuis un p'tit bout de temps maintenant et j'ai été très intéressé par ta source que j'ai parcouru rapidement; le code est tout à fait correct, les seuls conseils que j'aurai a te donner c'est de ranger tes classes en dossier, et, plus sérieusement, d'éviter la classe tween de flash (qui bug si elle est trop sollicitée)... caurina ou autres ;)

signaler à un administrateur
Commentaire de pegase31 le 25/11/2008 00:00:34 administrateur CS

La classe Tween est au contraire à conseiller, car elle permet justement de faire tourner correctement des animations sur tout type et puissance d'ordinateur sans impression de ralentissements.

Elle fonctionne très bien et de façon efficace quand on sait correctement l'utiliser.
Je ne peux pas te laisser dire de telles choses, alors que le problème vient de l'utilisateur et non de la classe elle-même.

Peg'

signaler à un administrateur
Commentaire de plaf_falp le 25/11/2008 15:08:58

salut taktik, merci d'avoir jeté un oeil sur le code, ca fait plaisir une personne qui s'y interesse ;)
pour ton conseil, en fait il me semble que je n'utilise la classe Tween que pour l'effet zoom de la touche espace mais pas pour le déplacement du perso ou pour le déplacement type "caméra" (où j'utilise des Timer)
donc peut être, comme a l'air de le dire Pegase, j'aurais mieux dû utiliser des Tween ?
le Timer est-il dépendant de la bécane sur laquelle il tourne ? (à priori non je pensais)
les lags sur cette anim apparaissent surtout sur les très gros labyrinthes, sinon c'est relativement fluide

plaf

signaler à un administrateur
Commentaire de taktik24 le 26/11/2008 15:24:17

comme quoi les expériences vécues ne sont pas les mêmes... Avec la classe Tween de flash j'ai rencontré souvent des problèmes de type interruption de mouvement (le mouvement n'atteint pas son point d'arrivée) dans le cadre d'une application lourde en mouvement (ce qui n'est pas le cas ici donc pas de soucis). En utilisant la classe caurina, je n'ai jamais eut ce problème...

Mais je ne fais surement pas parti des gens qui savent utiliser correctement la classe tween de flash.

signaler à un administrateur
Commentaire de pegase31 le 26/11/2008 15:29:20 administrateur CS

un Tween doit être utilisé simplement de façon efficace et intelligente.
Si tu colles des tweens toute les 5 min et partout, c'est clair que tu risques d'avoir des écrasements de tweens existants.

Va voir mon jeu de Burger, et tu verras qu'il y a des tweens partout sans qu'aucun ne s'arrête avant la fin.

Attention, je précise que la classe Tween AS3 est bien plus efficace que le simili truc bizarre fournis en as2.

Peg'

signaler à un administrateur
Commentaire de plaf_falp le 26/11/2008 16:53:18

c'est vrai que maintenant qu'on aborde le sujet, je me rappelle que même pour les 2 seuls Tween qui s'enchainent sur ce jeu (zoom puis dézoom) où le 2ème commence suite à l'évènement d'arrêt du 1er (basique, pas trop de risque d'erreur dans le codage), j'ai de facon apparemment aléatoire de temps en temps un ptit bug sur le zoom/dezoom (ca se fige)
Pourtant c'est de l'AS3.. enfin à creuser j'ai pas approfondi, la plupart du temps ca marche

sinon ca n'a rien à voir mais je me demande un truc (curiosité), vous bossez en flash dans votre boulot professionnel ? ou la plupart des posteurs sur flashkod sont des codeurs pour le fun ?

signaler à un administrateur
Commentaire de taktik24 le 26/11/2008 17:00:45

T'inquiète, je n'ai pas besoin de preuve ou de démonstration.

Il existe donc bien un risque d'écrasements de tweens existants, choses que je n'ai pas rencontré avec la classe caurina d'où mon conseil  ;)

A chaque projet sa bonne solution, et il existe des projets ou tu balances des tween toutes les secondes, et maintenant avec l'AS3 on peut se le permettre (dans les limites du raisonnable... quoique?)

Pour le Timer, a priori il s'exécute à intervalle régulier, mais les fonctions qu'il execute dépendent de la be cane, cercle vicieux... :)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

jeu en flash [ par cllucifer ] salut, j'aimerai savoir si personne n'avait essayé de faire un pictionnary en flash ou si quelqu'un pouvait m'aider à en faire un... je suis pas très jeu de billard [ par cocobingo ] salut à tous,je suis nouveau sur ce forum et débutant en flash.Je m'y connais un peu en programmation (matlab, qui est assez proche de flash m'a-t-on Jeu en flash [ par ecritel ] Je réalise un jeu de jackpot en Flash et je voudrais savoir comment faire pour qu'il y ai précisément 1 gagnant par semaine...Quelqu'un aurait une idé Jeu de pétanque multijoueurs en flash [ par milocco ] je viens de terminer la version beta de ce jeu de petanque multijoueurs.Vous pouvez venir le tester et me laisser vos impressions et commentaires et m jeu flash en réseaux [ par darksoul ] est il possible de créer des jeux en réseaux avec fashSi oui je voudrais qu'on me dise comment fairevoici mon mail jeremyjeanne@voila.fr probleme avec sequence sur flash [ par roplopo ] Salut tout le monde je suis nouveau ici, et j'espere que dans votre grande bontée , vous allez consentir à m'aider .je realise actuellement un jeu par jeu d'échec en réseau ?! [ par alinux ] Je débute en Flash et voudrai savoir s'il est possible de concevoir un jeu d'échec en réseau (deux joueurs) avec Flash?Si oui quells sont les étapes à jeu de pendu sous flash [ par marionrion ] bonjour,je suis novice en flash et j'aimerai faire un petit jeu de pendu sous flash 5 ou flash MX .Si quelqu'un a un code, cela m'aiderait beaucoup !m jeu de domino en flash [ par jea ] Je cherche des infos pour créer un jeu de domino en flash. Je suis dans le vide a vrai dire.Pouvez-vous m'aider? Quelques lignes de codes etquelques Jeu de pétanque multijoueurs en flash [ par milocco ] je viens de terminer la version beta de ce jeu de petanque multijoueurs.Vous pouvez venir le tester et me laisser vos impressions et commentaires. htt


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.