I. Introduction▲
Nous allons, au cours de ce tutoriel, développer un jeu de PacMan en VBA avec Excel.
Toute autre application Office est utilisable moyennement quelques petites adaptations
Pour une première approche de Gdi+ en VBA, consultez la page de la classe clGdiplus.
II. Outils utilisés▲
On s'en doute, Excel n'est pas prévu pour développer un jeu !
On va donc devoir utiliser des fonctions externes.
Tous les outils que nous allons utiliser pour créer et gérer les ressources du jeu (images, sons…) sont gratuits.
Il vous faut tout de même une version d'Excel 2000 ou supérieure pour dérouler ce tutoriel.
II-A. Graphismes▲
Pour gérer l'affichage on utilisera une classe VBA spécifique clGdiplus qui s'appuie sur la bibliothèque Gdi+ de Microsoft.
Consultez la documentation et les tutoriels de la classe clGdiplus
Gdi+ est intégrée à partir de Windows XP.
On pourra, pour que le programme fonctionne sur toutes les versions, fournir les fichiers redistribuables de Gdi+, que vous pouvez télécharger en suivant ce lien.
Les images seront dessinées avec msPaint.
II-B. Sons▲
Pour gérer les sons on utilisera l'API multimédia Windows (bibliothèque winmm.dll intégrée à Windows).
Les sons seront enregistrés avec le magnétophone de Windows.
II-C. Commandes▲
Les commandes claviers seront détectées avec la fonction GetAsyncKeyState de la bibliothèque user32.dll.
Les commandes du JoyPad seront détectées avec l'API multimédia Windows (bibliothèque winmm.dll).
II-D. Minuterie▲
Pour permettre un réglage précis de la vitesse du jeu, on utilisera encore une fois l'API multimédia Windows (bibliothèque winmm.dll), à l'aide de la classe clGdiplus qui implémente les fonctions nécessaires.
III. Spécifications du jeu▲
Commençons par définir les fonctionnalités du jeu.
III-A. Déroulement du jeu▲
C'est un PacMan, les règles sont bien connues.
Le PacMan se déplace avec les touches ou avec un JoyPad et mange des pastilles.
Les fantômes ont deux états :
- À l'état « normal » ils sont en couleurs et se déplacent de manière à se rapprocher du PacMan.
Si le PacMan rencontre un fantôme en état « normal », la partie est perdue. - Il y a une super-pastille à chaque coin de l'écran. Si le PacMan en mange une, les fantômes passent à l'état « effrayé » pendant une durée déterminée.
Dans cet état les fantômes sont bleus et ralentis.
Ils se déplacent de manière à s'éloigner du PacMan.
Si le PacMan rencontre un fantôme en état « effrayé », le fantôme est mangé.
Ce fantôme retourne alors au centre (on ne voit que ses yeux durant ce retour) et redevient à l'état « normal ».
La partie est gagnée lorsque le PacMan a mangé toutes les pastilles du jeu.
III-B. L'écran de menu▲
Le menu est le premier écran affiché au lancement du programme.
Il propose les options suivantes :
- Commencer le jeu => lance l'écran de jeu.
- Options => affiche l'écran des options.
- Scores => affiche l'écran des scores.
- Crédits => affiche l'écran des crédits.
- Quitter => ferme le programme.
III-C. L'écran de jeu▲
Affiche le jeu qui répond aux fonctionnalités énoncés dans le paragraphe précédent « Déroulement du jeu ».
Si le PacMan est mangé => affichage de l'écran partie perdue.
Si le PacMan a mangé toutes les pastilles => affichage de l'écran partie gagnée.
III-D. L'écran partie gagnée▲
Affichage d'un texte de fin de partie et du score.
Saisie éventuelle du nom du joueur pour une entrée dans les scores.
Enchaîne sur l'écran des scores.
III-E. L'écran partie perdue▲
Affichage d'un texte de fin de partie et du score.
Saisie éventuelle du nom du joueur pour une entrée dans les scores.
Enchaîne sur l'écran des scores.
III-F. L'écran des scores▲
Affichage des 10 meilleurs scores.
Enchaîne sur l'écran des crédits si fin de partie ou retour au menu si l'écran a été demandé depuis le menu.
III-G. L'écran des crédits▲
Affichage d'information au sujet du développement du jeu.
Ces informations défilent verticalement.
Enchaîne sur l'écran de menu.
III-H. L'écran des options▲
Paramétrage du jeu :
- nombre de fantômes à l'écran ;
- choix des touches de déplacement.
Enchaîne sur l'écran de menu.
III-I. Schemas des écrans▲
Voici donc le schéma d'enchaînement des écrans :