Faites vos jeux avec Flash !

Transcription

Faites vos jeux avec Flash !
16:03
Page 1
Programmez…
et jouez !
W. Siracusa
21/06/06
Passionné de jeux, Walter
Siracusa travaille en
tant que développeur et
graphiste free-lance sur
diverses missions de
développement d’applications pour des entreprises
locales, ainsi que dans la
maintenance informatique.
19,90 €
9 782212 119930
Conception : Nord Compo
À qui s’adresse ce livre ?
• Aux développeurs et graphistes Flash
• À tous les fanatiques de jeux vidéo
Code éditeur : G11993
ISBN : 2-212-11993-3
Découvrez grâce à cet ouvrage les secrets
de la programmation de jeux vidéo, en
développant vos jeux favoris avec Flash,
logiciel réputé pour sa grande portabilité
sur de nombreux systèmes et applications Web. Sudoku, Pacman,
Memory, casse-briques, Simon, ticket à gratter... vous n’aurez que
l’embarras du choix puisque chaque grande famille de jeux y est
représentée : jeux de chance, jeux de logique, jeux de mémoire, jeux
d’adresse, jeux de réflexion, etc. Commentés et expliqués, les
algorithmes de ces jeux sont développés en ActionScript, mais
peuvent être adaptés à d’autres langages, si besoin est. Ce livre est
complété par un chapitre sur les nouvelles fonctionnalités graphiques
de Flash 8, afin que vous puissiez ajouter quelques effets spectaculaires à vos créations. Compatibles avec les versions 8, MX 2004
et MX de Flash, les scripts de tous les jeux décrits sont disponibles
en libre téléchargement sur l’extension Web de l’ouvrage.
Faites vos jeux avec Flash !
11993_jeux_flash
CHEZ LE MÊME ÉDITEUR
A. TASSO. – Apprendre à programmer en ActionScript – Avec 60 exercices corrigés.
N°11556, 2006, 456 pages.
D. TARDIVEAU. – 120 scripts pour Flash 8.
N°11749, 2006, 462 pages.
M. LAVANT. – Flash 8 Professional.
N°11950, 2006, 678 pages.
J.-M. DEFRANCE. – PHP/MySQL avec Flash 8.
À paraître.
M. CAPRARO ET AL. – Flash MX 2004 Magic.
N°11513, 2004, 164 pages.
G. GUINE, A. MORAES. – Flash MX – Jeu en réseau avec Action Script et XML.
N°11068, 2002, 170 pages.
D. SHEA, M. E. HOLZSCHLAG. – Le zen des CSS.
N°11699, 2005, 296 pages.
K. GOTO, E. COTLER. – Redesign web 2.0.
N°11579, 2005, 294 pages.
R. GOETTER, S. BLONDEEL. – CSS2 – Pratique du design web.
N°11570, 2005, 324 pages.
J. ZELDMAN. – Design web : utiliser les standards – CSS et XHTML.
N°11548, 2005, 414 pages.
G. GUÉNEAU. – Conduite de projets en création numérique.
N°11474, 2005, 300 pages.
ÉDITIONS EYROLLES
61, bd Saint-Germain
75240 Paris Cedex 05
www.editions-eyrolles.com
Le code de la propriété intellectuelle du 1er juillet 1992 interdit en effet expressément
la photocopie à usage collectif sans autorisation des ayants droit. Or, cette pratique
s’est généralisée notamment dans les établissements d’enseignement, provoquant
une baisse brutale des achats de livres, au point que la possibilité même pour
les auteurs de créer des œuvres nouvelles et de les faire éditer correctement est
aujourd’hui menacée.
En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement
le présent ouvrage, sur quelque support que ce soit, sans autorisation de l’éditeur ou du Centre
Français d’Exploitation du Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris.
© Groupe Eyrolles, 2006, ISBN : 2-212-11993-3
Siracusa livre.book Page V Lundi, 19. juin 2006 1:57 13
Table des matières
Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
CHAPITRE 1
Le Pendu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Composant de type Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip pendu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip msg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
5
6
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Init() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les boutons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Clic() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
11
12
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
Siracusa livre.book Page VI Lundi, 19. juin 2006 1:57 13
VI
Faites vos jeux avec Flash !
CHAPITRE 2
Ticket à gratter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip gratte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip gain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip pen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
18
19
19
20
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un ticket aléatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La gestion de la souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le masque dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le grattage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
22
23
24
24
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
CHAPITRE 3
Le Taquin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’image fond.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les neuf images du clip pieces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip bravo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le son « bing.wav » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
28
29
29
29
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
Le son . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le mélange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’affichage des pièces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le déplacement des pièces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Check() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
32
33
33
36
37
38
39
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
Siracusa livre.book Page VII Lundi, 19. juin 2006 1:57 13
Table des matières
VII
CHAPITRE 4
Simon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les clips bumper1, bumper2, bumper3 et bumper4 . . . . . . . . . . . . . . . . .
Le bouton bouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
42
43
43
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Init() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les bumpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le bouton Stop/Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
47
47
48
49
50
CHAPITRE 5
Brick Invaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip balle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip barre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les clips brique1 à brique4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
56
56
57
57
57
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
L’association des sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’affichage des briques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction EndGame() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
60
61
61
62
67
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Siracusa livre.book Page VIII Lundi, 19. juin 2006 1:57 13
VIII
Faites vos jeux avec Flash !
CHAPITRE 6
Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’image fond.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les clips _pic1 à _pic8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les clips pap1 à pap8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip bravo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
70
71
71
72
72
72
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
Le mélange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’affichage des papillons et des caches . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fonctions des caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
75
75
76
78
78
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
CHAPITRE 7
Snake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip body0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip bloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip miam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le bouton bouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’image fond.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
82
83
83
83
83
83
84
84
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
Siracusa livre.book Page IX Lundi, 19. juin 2006 1:57 13
Table des matières
IX
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Init() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le lancement de la partie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction ControlSnake() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction MoveSnake() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script de la pomme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction EndGame() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
88
89
90
91
93
94
96
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
CHAPITRE 8
Sudoku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip digit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip curs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le symbole graphique fond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un composant de type Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
98
98
99
99
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Init() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les boutons FACILE, MOYEN et DIFFICILE . . . . . . . . . . . . . . . . . . . . .
Le bouton AIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les clics sur la grille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les boutons numériques et le bouton VIDE . . . . . . . . . . . . . . . . . . . . . . .
Le bouton REPONSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Check() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Clear() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
105
108
108
114
114
114
117
118
118
119
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
120
CHAPITRE 9
Gobman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122
Siracusa livre.book Page X Lundi, 19. juin 2006 1:57 13
X
Faites vos jeux avec Flash !
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’image fond.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip gob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les clips ghost1, ghost2, ghost3 et ghost4 . . . . . . . . . . . . . . . . . . . . . . . .
Le clip miam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip lives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
123
124
124
124
125
125
125
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
La disposition des pastilles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’initialisation de Gobman et des fantômes . . . . . . . . . . . . . . . . . . . . . . .
La fonction MoveTest() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction ControlGobman() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction MoveGobman() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction MoveGhost() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
130
131
133
134
135
137
137
138
141
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
145
122
CHAPITRE 10
Block Swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
147
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
148
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’image fond.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les clips bloc1 à bloc7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
148
148
149
149
149
150
150
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
150
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
150
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
157
Siracusa livre.book Page XI Lundi, 19. juin 2006 1:57 13
Table des matières
XI
La conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
Création et remplissage des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction Analyse() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La sélection des pièces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction SelectBlock() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction MoveBlock() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction SwapBlock() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction InDestroying() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction FallBlock() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction FillLine0() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction InFalling() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction EndGame() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
157
158
160
161
164
164
167
167
169
169
170
171
172
173
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
174
CHAPITRE 11
Headball . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
175
Déroulement du jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
176
La bibliothèque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
L’image fond.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip ball . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le clip coin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
176
177
177
177
177
178
La scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
178
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
178
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclaration et initialisation des variables . . . . . . . . . . . . . . . . . . . . . . . . .
Les collisions entre la tête et le ballon . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fonction AddCoin() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La boucle principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
181
181
182
185
186
Le mot de la fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
192
Siracusa livre.book Page XII Lundi, 19. juin 2006 1:57 13
XII
Faites vos jeux avec Flash !
CHAPITRE 12
Effets graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
Cœurs filtrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
194
195
Téléviseur brouillé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
195
196
196
Disparition floue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
197
198
198
Apparition pixellisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
200
200
201
Changement de couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
202
203
203
Noir et blanc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
205
205
206
Fondus enchaînés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Niveaux de gris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
207
207
208
209
Négatif et effet miroir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
209
210
210
Scrolltext sur un relief . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Étude du script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
211
212
213
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
219
Siracusa livre.book Page 1 Lundi, 19. juin 2006 1:57 13
Avant-propos
Le monde du jeu vidéo n’a cessé d’évoluer et de se développer sur de nombreuses platesformes. Le logiciel Flash, avec son langage ActionScript, fait figure de bon élève en
matière de portabilité sur différents systèmes et entre dans la réalisation de nombreuses
applications Web, dont des jeux au design vectoriel, agréables à regarder et à pratiquer.
Cet ouvrage s’adresse à tous ceux qui souhaitent développer des jeux vidéo et connaissant déjà les bases de Flash et d’ActionScript 2.0. Son objectif est de vous expliquer le
fonctionnement de 11 jeux types (Taquin, Snake, Sudoku, Pacman, casse-briques, etc.)
appartenant à différentes familles (chance, logique, mémoire, adresse et réflexion). Vous
pourrez ainsi comprendre les techniques de programmation de chacun d’eux et les appliquer dans vos propres créations.
Tous les scripts des jeux ont été spécialement écrits avec la version MX de Flash afin
qu’un plus grand nombre d’entre vous puisse en profiter. De ce fait, ces scripts sont aussi
compatibles avec les versions MX 2004 et 8 du logiciel Flash, mais aussi avec Flash
Player 6 que l’on retrouve sur de nombreuses plates-formes de type téléphones portables,
Pocket PC et même PSP©.
Flash 8 n’est d’ailleurs pas en reste puisque le dernier chapitre lui est entièrement dédié. Une
dizaine d’effets graphiques vous permettront de vous familiariser avec les nouvelles fonctionnalités de cette version 8 et vous apprendront à manipuler de manière poussée les images
et leurs couleurs.
Pour finir, n’oublions pas qu’ActionScript est juste un choix de langage ; vous êtes
évidemment libre d’adapter les algorithmes des scripts à d’autres langages si vous le
souhaitez.
Bonne lecture à tous et à toutes, et excellente programmation.
L’auteur,
Walter Siracusa
Siracusa livre.book Page 2 Lundi, 19. juin 2006 1:57 13
Siracusa livre.book Page 3 Lundi, 19. juin 2006 1:57 13
1
Le Pendu
Pour commencer en douceur, nous allons étudier en détail le jeu du Pendu (figure 1-1).
Cette version, dans laquelle il s’agit de trouver un nombre à la place d’un mot, est un bon
exercice d’échauffement car il repose essentiellement sur des interpolations d’images et
son script est très simple à concevoir.
Figure 1-1
Déroulement du jeu.
Siracusa livre.book Page 4 Lundi, 19. juin 2006 1:57 13
4
Faites vos jeux avec Flash !
Déroulement du jeu
Le joueur doit trouver un nombre compris entre 1 et 999 en 15 essais maximum. Le jeu
lui indique à chaque essai si le nombre qu’il a saisi est plus grand ou plus petit que celui
à trouver. À chaque erreur, un tracé « à la craie » schématisant une potence et un pendu
se dessine progressivement.
Signalons quelques points importants :
• Le jeu se joue entièrement à la souris en cliquant sur des boutons.
• Le nombre à deviner est aléatoire et compris entre 1 et 999.
• Le nombre saisi est limité à 3 chiffres.
• En fin de jeu, partie gagnée ou perdue, un message indique qu’il est possible de
rejouer.
La bibliothèque
Elle contient :
• un composant de type Button ;
• le clip pendu ;
• le clip msg.
Composant de type Button
Le pavé numérique virtuel, nécessaire à la saisie des nombres au cours de la partie, est
construit à l’aide de ce composant qui a été glissé sur la scène autant de fois qu’il y a de
boutons, c’est-à-dire 12 fois.