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.