Sujets sur : as3 developer android

Cours ActionScript 3 ‘as3 developer android’

Créer un jeu flash de type RPG Zelda avec PureMVC

4 questions

Ecrit le 17 janvier par Matthieu
Publié dans le(s) sujet(s) Jeux Flash

Le thème du cours AS3 de cette semaine est la création d’un jeu flash de type RPG ou plus connu sous le nom de Zelda.

Pour développer ce jeu flash, nous allons nous appuyer sur le Framework PureMVC.

Pour une meilleure approche du développement de jeux flash, vous pouvez aussi consulter les cours précédents : Créer des jeux flash en ActionScript.

Voici ce que vous allez apprendre dans ce Cours ActionScript :

  • Quelle est la stratégie optimum pour architecturer votre projet flash.
  • Quel type d’arborescence utiliser pour se repérer facilement pendant le développement.
  • Les classe essentielles à créer lors de l’utilisation du Framework PureMVC.
  • Comment créer le décor en utilisant un système de Tile (ou case).
  • La technique pour construire votre fla avec tous les éléments graphiques de votre carte du jeu.
  • La solution pour effectuer simplement les différents tests de collision avec les différents éléments du décor.
  • Comment gérer le déplacement du décor et du joueur sur une carte immense.
  • La technique pour optimiser les ressources mémoires utilisées par l’affichage de la carte.
  • Comment effectuer un chargement dynamique avec des cartes immenses.

Cette formation AS3 vous permettra de développer un jeu flash AS3 de type RPG / Zelda.

Jeu Flash RPG Zelda

[spoiler]

Bonjour à tous et bienvenue sur actionscript-facile.com

 

Dans ce petit cours AS3, nous allons voir comment créer un jeu de type Zelda RPG en AS3.

Etant donné qu’il y a beaucoup de concepts à aborder dans la création d’un jeu de type Zelda, ce sera fait étape par étape.

 

Dans la première partie de ce cours, nous allons créer le jeu avec le déplacement du décor, la construction des niveaux, les tests de collision.

Dans les cours suivants, nous allons voir comment intégrer des ennemis, que le héros puisse sauter par dessus des obstacles, rentrer dans une maison etc. etc.

 

Dans ce cours, nous allons utiliser le framework pureMVC qui est relativement simple à mettre en œuvre.

Pour commencer à s’amuser un petit peu, je vais donc vous montrer comment organiser votre projet, la structure du fichier Flash, ce qu’il doit contenir, un petit peu comment utiliser FDT.

Puis nous allons créer les classes types comme d’habitude, et là le plus intéressant, nous allons commencer à intégrer l’algorithme du jeu.

C’est-à-dire à utiliser le moteur de tiles.

 

Ce moteur ce n’est pas moi qui l’ai inventé, je l’ai trouvé sur un site Internet et je l’ai adapté en actionscript3.

 

Et avec le framework pureMVC, l’architecture de type Zelda que je voulais mettre en place et vous montrez. Puis nous allons voir la création et le déplacement du décor, le déplacement du personnage, les tests de collision avec les éléments de la carte.

 

Et également le chargement de niveau. C’est-à-dire si vous vous utilisez votre jeu avec un niveau qui est hyper long ça va être long à charger et très long à calculer pour le flash.

Donc ce n’est pas très optimisé, vous allez voir que dans le jeu, il y a des portes.

Quand le héros passe la porte, en fait ça lance le chargement. Après c’est vous qui l’implémentez.

 

Je l’ai mis en statique, mais vous pouvez mettre chargement dynamique de fichier XML, des graphismes du jeu et création du nouveau décor.

 

Nous passons tout de suite à la pratique.

 

Nous allons donc regarder la construction de notre fichier Flash.

Notre fichier flash en fait, on va créer un fichier SWC.

Il suffit de cocher cette case exporter un SWC et c’est tout. Le reste, on ne le change pas, y a le fichier SWF mais après c’est vous qui voyez.

 

Là c’est des cours que j’essaye de faire le plus simple impossible donc on va utiliser un fichier SWC pour nos graphismes.

Après avec un fichier SWF, vous pouvez charger dynamiquement. Ce fichier SWF, donc les niveaux dans un fichier SWF qui contient les graphismes par niveau.

 

Après c’est en fonction de la complexité du jeu. On ajoute plus ou moins d’éléments externes chargés dynamiquement, à la demande, en fonction des actions d’utilisateur.

 

Donc on va utiliser un moteur de tiles. C’est dire que notre carte notre jeu va être composé de plein de cases qui feront 30 par 30.

 

Des éléments de 30 pixels par 30 pixels positionnés à 0 ;0.

Puis les coller les uns aux autres.

En fait, ce sera un tableau avec des coordonnées en X et en Y. A chacune de ces coordonnées correspondra une petite case comme celle-ci : une tile.

Ca s’appelle un engine tile en anglais, moteur de case, on va l’appeler en français.

 

Ces petites cases vont permettre de construire votre niveau.

Donc là, il y en a plusieurs, ce sont à chaque fois des images GIF, PNG ou JPEG que vous placez dans un movieclip qui s’appelle tile.

 

Quand on va construire notre niveau je vais vous montrer, on fera un gotoAndStop vers la tile à afficher,.

Oon peut en mettre autant qu’on veut, c’est pas limité.

 

Si on regarde notre bibliothèque, on a tous nos éléments :ici les images, voilà donc des images PNG.

Et après moi je ne suis pas très fort en graphisme, je fais ça très simple.

 

J’ai récupéré un logiciel qui permet de créer des jeux RPG. Donc j’ai récupéré les images, j’en ai créé plusieurs.

Ensuite, on a notre héros donc notre héros. Il a quatre images clé.

En fonction de la direction où il va aller, donc à droite, à gauche, en haut et également il a une animation.

C’est-à-dire, quand le héros descend, il joue cette animation. Qand le héros monte, il joue cette animation.

Il suffit de rentrer dedans pour voir l’animation du héros. Pareil à droite et à gauche.

 

Voilà toutes les animations de notre héros tout simplement.

 

 

Ensuite nous avons la bordure. C’est une bordure qui est sur tout l’écran. Qui met en valeur le jeu.

 

C’est vous qui choisissez graphiquement. Comme d’habitude vu que c’est un fichier SWC, pour chaque élément dont on a besoin, on exporte pour actionscript : classe héro, c’est un movie clip parce qu’il y aura des gotoAndStop. Pareil pour le tile et on a besoin des propriétés du movie clip gotoAndStop pour sélectionner l’élément du décor.

 

Comme je vous l’ai dit, bordure sera un Sprite parce qu’il n’y a pas d’animation dans notre bordure.

Une fois que tout ça est prêt, on exporte en fichier SWC.

 

On passe sous FDT.

Notre fichier SWC il est ici et on remarque tout nos éléments : chars, dans héros il y a le movie clip char qui est accessible comme d’habitude. Parce qu’on va pouvoir agir dessus, donc on lui a donné un nom ici : char.

On peut l’appeler héros comme vous voulez. Ca nous permet à nous d’agir dessus depuis l’ActionScript directement.

N’oubliez pas de l’appeler char, vous devez retrouver sa propriété ici.

 

C’est effectué avec pure MVC.

On part de notre classe mère comme d’habitude. Et un petit start-up, je vais passer un petit peu plus vite.

 

Je vous renvoie au cours flash pureMVC pour comprendre un type d’architecture du projet.

Il faut savoir que dans notre application, on a notre commande, le modèle, y en a qu’un seul.

Il peut y en avoir plusieurs c’est pas exclu. Et nos vues tout simplement, et applications facade, qui contient les commandes et les événements.

 

Enfin ces événements appellent des commandes.

Je les séparent toujours ces événements qui appellent des commandes, des événements classiques qui communiquent de vue à vue ou autres d’un modèle à vue etc.

 

Donc on a enregistré toutes nos commandes et on envoie la notification start-up comme d’habitude.

Start-up, ça va créer notre modèle.

On récupère le stage, on va en avoir besoin. Et on créé nos vues ici.

On récupère le root et on créé nos vues, donc la création des vues elles sont ici.

 

C’est l’application médiator, on positionne nos vues.

Si ici on positionne nos vues, on a la vue background. Si vous regardez elle est vide, ça peut servir si on veut mettre certains éléments dans le décor vraiment en dessous de tous les autres.

Là j’ai utilisé à la place la propriété SWF background color et je lui ai mis cette valeur mais sachez qu’il y a la vue backgroud qui est prêt à accueillir des graphismes qui sera là pour ça.

 

 

Ensuite, on a notre carte, le décor.

Le héros qui est par dessus la carte, les murs donc c’est la bordure.

Les bordures et la vue gagnée donc c’est le bouton commencer tout simplement .

 

On regarde notre modèle, d’un autre modèle, j’ai mis une petite classe modèle pour l’instant il n’y a rien dedans mais j’aime bien laisser ce qui peut servir pour faire évoluer le jeu.

Puisque là le jeu n’est pas terminée.

 

Dans les prochains cours nous allons nous en servir.

Là y a la gestion du onEnterFrame, c’est-à-dire que l’on s’enregistre quand l’utilisateur appuie sur le bouton commencer.

On écoute onEnterFrame pour envoyer un événement toutes les images par seconde quand le joueur appuie sur le clavier.

Mais là il n’y a pas le bouton, mais quand il y a game over ou gagné, on enlève l’événement onEnterFrame.

Et à chaque image par seconde, on envoie cet événement. Toutes les vues abonnés réagissent.

 

Les commandes, ça c’est le clic droit sur le menu démarrer start game. C’est pour lancer le onEnterFrame et ça, c’est pour créer notre médiateur.

Pas grand-chose comme commande. Le modèle on a vu rapidement, il est assez simple.

 

Maintenant les vues : vue background elle est vide.

On a la vue gagnée qui a uniquement un seul bouton, le bouton commencer, je passerai vite parce que c’est pas le coeur du jeu.

 

La vue héros, qu’est-ce que fait le héros ?

On le créé set up puis start game. On fait un set up puis un set up contrôle, on créé notre héros en le positionnant en position neutre dans le movie clip.

Pareil pour l’animation, on l’ajoute sur la scène. Et on envoie la largeur et la hauteur du héros.

 

En fait, il en a besoin pour la création et le déplacement du décor. Et ensuite set up contrôle c’est-à-dire qu’on va écouter les actions de l’utilisateur sur certaines touches.

 

Donc sur certaines touches, on utilise un simple booléen tout simplement très simple.

Booléen à true, suivant la touche qui est appuyée.

 

Space je l’ai mis ça servira pour plus tard. C’est pour que l’utilisateur puisse utiliser son pistolet ou son épée pour tuer des ennemis.

En fonction du type de booléen, on envoie un événement déplacer la carte avec les datas.

La direction en X, la direction en Y c’est aussi simple que cela.

Et ça se sera récupéré, cet événement par vue map.

 

En fonction du bouton appuyé, la direction change en X et en Y.

Évidemment si aucune touche n’est pressée, on positionnent en position neutre notre héros.

Sinon, on lance l’animation concernant le héros en fonction de la direction qu’il a pris. Donc de la touche appuyée.

 

Ca c’est la vue héros qu’est qu’elle a d’ autre ?

Elle a une seule chose : elle écoute l’événement de déplacement, c’est-à-dire vue map vous allez voir la carte déplacée.

 

Il faut évidemment déplacer le héros donc cette carte vue map envoie un événement qui est récupéré par vue héros et il met à jour ses données ici.

Tout simplement sa position donc la position du héros change.

On écoute l’événement envoyé par le modèle envoyé sur onEnterFrame.

 

Et c’est là où on envoie les événements mouve map, à la classe vue map, sur chaque image par seconde.

On déplace la carte et le héros pour que le jeu soit fluide et rapide

 

Si on regarde vue map pour construire un niveau, c’est tout simple.

On utilise les frame, nous ici dans tile, on vient dans tile, vous avez frame 1, frame 2, frame 3, frame 4, des éléments du décor. Et on donne le numéro 15, là se sera laissa les sapins, numéro 13 des palmiers, une porte 19, une montagne.

On rempli notre carte donc ça c’est des lignes lignes à l’écran, colonne colonne colonne colonne.

 

Pareil une carte 2 donc ça c’est des cartes dans un jeu plus complexe. On les chargent via des fichiers XML via remoting.

Enfin elles sont chargées dynamiquement en fonction de là où votre joueur se situe dans votre jeu.

 

Donc on construit notre carte avec des chiffres.

Bon évidemment, dans les jeux plus complexes, les développeurs utilisent un éditeur de carte qui permet de créer automatiquement ce type de tableaux ou le fichier XML ou autre suivant le protocole que vous avez choisi.

 

Donc l’éditeur, ça permet d’avoir visuellement tous les éléments de la carte et de construire beaucoup plus facilement de visu plutôt qu’une suite de chiffres.

Vous pouvez faire un éditeur de carte si vous souhaitez là c’est pas le thème du cours pour l’instant on va se concentrer sur la construction du niveau.

 

 

Vous créez un tableau à deux dimensions votre carte.

 

Qu’est-ce qu’on a ?

set up puis on initialise notre jeu.

J’ai mis plusieurs commentaires pour vous aider au maximum.

 

La taille d’une case c’est 30 pixels comme je vous l’ai dit dans le fichier flash.

Les cases visibles à l’écran, nombre de cases visibles à l’écran sur la ligne des X et en vertical Y, le centre de l’écran pour positionner le héros.

 

Ca c’est calculé, pendant le déroulement du jeu et pareil la taille de la carte c’est en fonction de la taille du tableau.

 

Nous avons les informations sur le personnage : ses coordonnées de départ en cases.

Pour trouver les coordonnées des cases autour du héros, c’est pour les tests de collision et s’il a le droit de se déplacer.

 

Par défaut, il a le droit de se déplacer nulle part. En fonction de l’appui du joueur, s’il appuie sur la touche droite, gauche ou autre, on déplace l’utilisateur.

Ca c’est la position et la taille du héros. On sait sur notre carte à tout moment où se positionnent le héros.

 

Ici on attend un événement, que le héros soit prêt.

 

Une fois le héros prêt, on lance la construction du level. Et on renseigne les informations de notre personnage : sa largeur et sa hauteur en fonction de la taille du héros réelle que l’on envoyé ici.

 

On construit notre level, on va parcourir notre tableau.

On utilise un Sprite qui va contenir toutes nos tiles les unes à la suite des autres.

 

Par défaut on prend la map, enfin map du level, on a transmit la map 1. Je veux dire la première et on va lancer la construction.

On détermine les positions du héros lorsqu’il est proche des bordures donc des bords de notre écran de jeu. Et ensuite, on va parcourir toutes les colonnes et pour chaque colonne on va mettre en place toutes les lignes de notre jeu.

Tous les éléments graphiques, on fait colonne par colonne et ligne par linge.

 

 

Première colonne, toutes les lignes tac tac tac, deuxième colonne toutes les lignes etc. etc.

 

Comme ça on construit tout notre jeu. On utilise un objet haut map éléments qui contient le nom de l’élément.

S la case est sur la carte, on lui donne un autre nom tile, c’est optionnel, on pourrait l’enlever, on s’en sert jamais. Dans les prochains cours, on va optimiser certaines fonctions de jeu pour gagner en rapidité et en ressources mémoire.

 

Là je fais des boucles, beaucoup de boucles pour retrouver certains éléments.

Vous allez voir qu’on peut simplifier ça en ciblant directement avec le bon nom parce que on sait qu’il existe en théorie.

 

La frame à afficher et si c’est une porte, on a notre fonction get porte by number.

En fonction du nombre donc on va configurer, c’est une porte sur la première carte, c’est notre porte, sur la deuxième carte, on lui dit que c’est une porte.

 

On donne la position de départ de notre personnage en termes de cases.

Par défaut il n’y a pas de porte 3 et 19.

Si on regarde ici 3 une porte, 19 une autre porte.

Donc porte pour la première carte, porte pour la deuxième carte.

 

Ensuite, on récupère est-ce qu’il est franchissable ou non, l’élément du décor dans notre case est ce qu’elle est franchissable ou pas ?

 

Il suffit de configurer ici toute les images qui sont franchissables ou non et de les reporter ici.

 

Donc nous on sait que de un jusqu’à 19 les portes sont franchissables. Évidemment, tous ces éléments sont franchissables : c’est soit des fleurs, de l’herbe ou des petits éléments du décor auquel le héros peut passer à travers.

Et sinon, on a nos obstacles par défaut c’est pas franchissable on met false.

 

return on pourrait l’enlever on pourrait même mettre, juste enlever ici et laisser celui là, ça déroulent enfin c’est du détail ça nous permet à partir de la Frame sélectionnée, de savoir si le décor est franchissable ou non.

 

Et ensuite on créé une new tile donc nouvelle case new tile. On va créer ça et on l’ajoute sur notre carte. Donc on le met dans notre objet où on garde toutes les informations name la Frame si c’est une porte le clip, on l’ajoute sur la scène ici à tiles qui va contenir.

 

C’est un tableau qui contient tous nos éléments graphiques on le positionne et on le met sur un gotoAndStop.

 

frame donc on le déplace ici sur la bonne Frame Graphic et à la fin on l’ajoute à l’écran.

 

On fait ça pour tout le monde.

Ensuite on ajoute notre carte sur l’écran. On positionne notre héros à la position de départ que nous souhaitons, que nous avons configurés. On garde en mémoire les coordonnées d’origine du héros, ça permet de déterminer de quel côté déplacer la carte en fonction du héros.

 

Et on envoie les coordonnées au vrai héros lui, parce que ça c’est notre personnage sur la carte. On envoie à la vue héros les nouvelles coordonnées qu’il devra utiliser tout simplement.

 

Ensuite on écoute un seul événement move map. A chaque fois, on récupère les éléments envoyés par la vue héros. Ici en fonction des touches appuyées de direction, on change et on lui dit de se déplacer.

Donc on teste autour du héros s’il y à des obstacles. On récupère get case by name, c’est cette fonction dont je vous parlais.

 

A chaque fois, je boucle dans tous mes éléments graphiques dans mon tableau où il y a tous mes objets tiles, mes cases et je recherche le nom.

 

Cette fonction peut être optimisée. Dans un prochain cours, je vous montrerai comment l’optimiser.

On n’aura plus besoin de parcourir tout le tableau, on ciblera directement le display objet par son nom. Et celui là nous renverra sa position dans le tableau.

 

Je vous expliquerai ça, y a rien de bien compliqué.

On continue de tester si les déplacements vertical en y sont possibles ou pas.

Avec la vitesse de déplacement du héros, on déplace le héros vers le haut si c’est possible donc on teste s’il y a des murs, pas de mur donc déplacement.

S’il y a un mur, on place le héros juste à côté du mur, on fait ça vers le haut vers le bas en horizontal Y.

 

On teste get corner, et en déplacement à droite, à gauche. Là, on récupère les éléments et on teste tout simplement à chaque fois notre case, on peut passer à travers elle est franchissable ou pas.

On peut marcher à travers ou non tout simplement.

 

Ensuite, on continue et là on va déterminer les nouvelles coordonnées du héros. On envoie la nouvelle position du héros.

Si c’est une porte, on va lancer la mise à jour de la carte parce que chaque élément à une propriété porte avec un booléen donc une map.

 

Ca met à jour les nouvelles coordonnées du personnage pour le positionner sur la carte.

Et on lance tout simplement un build level en lui transmettant un tableau.

Donc le .map aux portes infos et ça va relancer la construction d’un nouveau niveau, rien de bien compliqué.

 

Et c’est là où on va déplacer la carte. En fait, la subtilité dans un jeu de RPG, il y a le héros qui se déplace jusqu’au centre de la carte et ensuite c’est la carte qui se déplace.

 

Donc ça faut bien le comprendre, d’un côté vous avez le héros qui se déplace jusqu’au milieu de l’écran et ensuite la carte se déplace jusqu’aux bords.

Et quand on ne peut plus déplacer la carte sur la droite par exemple. On atteint le bord, ben on déplace uniquement le héros.

 

Donc les 2 se déplacent en même temps en fonction d’où le héros se situe sur la carte.

C’est ici, on teste en déplacement horizontal si on doit déplacer la carte ou non. C’est en fonction de la position du héros.

 

Et ensuite, si on doit supprimer des lignes et des colonnes. Parce que si on déplace la carte, évidemment sur la carte, il y a des nouvelles cases qui vont changer. On va faire un up date case et un up date case qu’est ce que ça fait tout simplement ?

 

Grosso modo ça fait un gotoAndStop pour mettre à jour l’élément.

Là on fait un gotoAndStop sur les cases existantes pour les changer graphiquement en fonction des données que nous recevons.

 

Ici on vérifie si la nouvelle case est sur la carte sinon on créé une case vide qui ne servira à rien.

 

Et la, si c’est une porte on récupère les infos de la porte. On repositionne le nouveau clip évidemment aux bonnes coordonnées.

 

On récupère est ce qu’il est franchissable ou non et on le met sur la bonne image dans notre movie clip.

C’est-à-dire que quand on déplace la carte ont reconstruit les cases les unes après les autres en fonction de la position du héros.

 

Soit on construit les cases qui sont celles plus à droite, soit on construit les cases qui sont celles plus à gauche.

Pareil pour un déplacement vertical, c’est le même principe. Soit on reconstruit les casses tout en haut, le plus en haut. Ou alors, le plus en bas.

 

Ca ça dépend ici de la position du héros sur le jeu.

 

Là je vous ai vraiment présenter très rapidement un moteur de RPG de type Zelda.

 

Il y aura d’autres cours sur ce moteur, à partir des questions que vous me poserez je vous expliquerai un peu plus en détail ce qui vous pose problème.

 

Par exemple si c’est vue map, comment déplacer la carte, reconstruire graphiquement toutes les cases en fonction du déplacement du héros, je vous expliquerai tout ça donc.

 

N’hésitez pas à poser toutes vos questions sous la vidéo.

 

Et bien évidemment pour compléter ce jeu, il restera à ajouter des ennemis, que notre héros puisse se défendre en donnant des coups d’épée ou avec un pistolet, que notre héros puissent sauter par-dessus des obstacles sur la carte, rentrer dans une maison.

 

Il y a aussi la gestion du jour et de la nuit.

Tous ces éléments seront abordés dans les prochains cours sur actionscriptfacile.

 

Je vais vous montrer une petite démonstration du résultat de ce petit jeu.

 

Je lance la compilation ça prend un petit peu de temps, je met le debuggeur en place et je vous montre.

 

Donc notre carte n’est pas encore construite, il y a juste les bordures.

Je clique sur le bouton commencer, ça affiche les éléments de la carte.

 

Vous voyez le héros se déplace jusqu’ici, la carte ne se déplace pas, la carte ne se déplace pas. Uniquement le héros là au milieu, uniquement le héros se déplace et dès qu’il va passer ce point, la carte se déplace et jusqu’ici la carte arrête de se déplacer.

Parce qu’on arrive au bord donc elle ne se déplace plus.

 

La carte pareille, jusque-là hop la carte se déplace, je passe le milieu de l’écran comme c’est configuré, la carte se déplace/

 

Ici nous avons donc une porte, une porte qui va charger le niveau deux en direct. Le niveau 2 est chargé et on peut se déplacer.

 

Vous voyez qu’on est toujours à 40 images par seconde donc on consomme à peine huit méga de mémoire.

Bien évidemment, on peut l’afficher en beaucoup plus grand notre jeu, en mettant beaucoup plus de cases et d’éléments.

 

Vu que c’est un cours, j’ai voulu faire simple. J’ai fait que sur 300 par 250, après on peut faire comme d’habitude sur 550 par 400.

C’est libre à vous, de toute façon il y a des ressources mémoire disponibles.

 

On peut se déplacer.

Là c’est un obstacle, le héros ne peut pas passer à travers.

Là non plus, là c’est de l’herbe donc il peut marcher dessus. Si c’est des sapins, il ne peut pas passer à travers.

 

Tout ça est testé en direct. Le jeu est relativement fluide.

 

Là on a notre porte, on passe.

 

Rien ne vous empêche d’agrandir la taille de vos tableaux c’est-à-dire ici : la taille de de ce tableau pour que votre carte, en agrandissant la taille de ce tableau, votre carte sera beaucoup beaucoup plus grande.

 

Et donc le déplacement dans le jeu sera beaucoup plus important. Parce que là, vous voyez que ça comme colonnes, on a vite fait et très très rapidement le tour de la carte.

 

Là on peut jouer sur la subtilité, c’est de mettre les niveaux qui se chargent dynamiquement à chaque fois que le joueur passe une porte.

 

C’est une petite démonstration de l’utilisation de ce moteur.

 

Comme je vous le dis, il y a beaucoup de choses à rajouter.

 

Et on va le faire tout au long de l’année en complétant et en améliorant ce jeu flash.

 

 

 

En attendant, et comme d’habitude, vous pouvez télécharger le code source complet de ce jeu flash RPG Zelda sous cette vidéo.

 

Et comme je vous le disais, pour les prochains cours sur les jeux flash, n’hésitez pas à poser vos questions sur les difficultés que vous rencontrer.

Notamment dans ce code source ou dans le code source du case briques.

 

Dites-moi les difficultés que vous rencontrez, quel type de jeu flash vous avez développé.

 

Et vous, quelle stratégie vous utilisez .

 

Je vous dis à très bientôt sur actionscriptfacile.com.

[/spoiler]

Version démonstration

Ci-dessous un exemple du jeu flash RPG Zelda !

Utilisez les flèches directionnelles pour vous déplacer sur la carte.

Télécharger le code source du cours AS3

Consultez ce site sur les jeux flash (en anglais).

Vous trouverez l’ensemble du code source commenté pour vous aider.

Renseignez votre adresse mail pour recevoir le code source commenté instantanément !

Et vous, comment développez-vous vos jeux flash?

Avec quels outils ?

Dites-moi cela dans les commentaires ci-dessous.