Études supérieures - Les enseignements - Plateforme Temps Réel - Atelier Hypermédia - Director / Shockwave -

director[06] = #jeu

Objectif
Créer un jeu interactif.

Code
Les codes sources de ce projet se trouve en bas de cette page. Il y a aussi des travaux d’étudiants qui jouent avec les concepts explorés ici.

Reactive + Automatique = Jeu
Nous allons prendre ce que nous avons appris sans les deux chapitres précédents — à savoir l’interactivité immédiate (réactivité) et l’automatisme — et réunir ces deux principes pour créer un jeu vidéo simple. Il est important d’avoir bien saisi le rôle de l’automatisme avant de créer un jeu : un jeu vidéo est intéressant non pas parce que je maîtrise tout, mais justemment parce que je ne peux pas maîtriser tout. Les jeux vidéo mettent en doute cet apriori du contrôle, et créent des espaces plus dynamiques dans lequels interacteur et programme sont placés dans une véritable lutte. Il faut que la machine ait son autonomie, mais que je puisse réagir à son autonomie : le résultat de cette lutte donne naissance à l’interactivité.

Préparer le terrain
Nous allons utiliser trois acteurs.

Commençons par la création du méchant extraterrestre. Créez un carré vert dans la Distribution et glissez-le sur la Scène comme dans les exemples précédents. Placez-le vers le haut de la Scène. Ce Sprite sera notre méchant. Créez ensuite un deuxième carré — celui-ci sera bleu — puis glissez-le vers le bas de la scène. Ce Sprite sera notre héro. finalement, créez un dernier carré — disons rouge, et plus petit que les autres — puis glissez-le juste au-dessus du carré bleu. Ce Sprite sera notre missile de défense.

Voici la Scène de notre animation avec les trois protagonistes réunis.

Nous allons ensuite créez les trois comportements des trois protagonistes. Les trois instructions ont été programmées pour fonctionner de façon totalement autonome, c’est-à-dire que nous allons tester chaque programme un par un au lieu de les créer tous d’un coup. C’est une très bonne méthode de programmation dans Director, surtout pour les plasticiens : avancer pas-à-pas, éxplorer les différentes parties de l’idée, en changeant éventuellement des choses en cours de route. Il s’agit d’une méthode plus exploratrice, où on n’a pas besoin forcément de savoir exactemment où on va ; il faut juste savoir à peu près où on veut être pour chaque étape iterative du processus de création.

Tester l’envahisseur
Voici le programme que j’ai écrit pour l’envahisseur. Il s’agit du même programme utilisé dans le chapitre 5, avec un seul changement, que nous comprendrons plus tard, une fois le programme terminé.

mettez l’animation en lecture, et vérifiez que l’envahisseur fonctionne.

Notez que l’envahisseur bouge de droit-à-gauche et de gauche-à-droite mais que les deux autres Sprites ne bougent pas. Nous allons maintenant ajouter leur instructions. Rembobiner l’animation.

Tester le héro
Comme pour l’envahisseur, nous allons créer le comportement du héro séparément du missile — ce qui sera un peu drôle à la lecture, mais nous permettra de bien comprendre le rôle de chaque élément dans son autonomie, et les par rapport aux autres.

Le script du héro utilise le clavier pour contrôler sa position. Il donc est réactif, comme dans le chaptire 4, mais réagit au touches <- et -> du clavier. On aurait pu utiliser la souris et tester si (if ... then ... end if) la souris était à gauche ou à droite du Sprite. Nous avons opté pour le clavier pour rester dans la tradition du jeu classique Space Invaders. Notez l’usage du AND qui permet la vérification de deux critères avant de valider l’action.

Comme avant, jouez l’animation et tester la réactivité du héro. Attention : si votre héro ne réagit pas au clavier, vérifiez que la Scène est en premier plan. Vous pouvez cliquer sur la Scène pour la rendre active.

N’oubliez pas de rembobiner l’animation avant créez le comportement du missile. Un changement structurel comme la création d’un nouveau Sprite ou l’ajout d’un nouveau comportement nécessite de rembobiner l’animation. Toutes les autres changements sur les élements déjà en place — par exemple les comportements déjà associés aux Sprites — peuvent être effectués en temps réel pendant que l’animation tourne. C’est un des avantages de l’environement Director.

Tester missile
Le comportement du missile est le plus complexe. Comme l’envahisseur, il utilise une propriété — tir — mais cette fois-ci la propriété est plus conceptuelle : la valeur 0 veut dire que la missile suit horizontalement le héro, la valeur 1 indique que la missile avance vers le haut de la scène, et la valeur 2 indique que le missile a rencontré l’envahisseur. Quand le missile rencontre l’envahisseur ou va trop loin en haut de la scène, il retourne à sa position vérticale d’origine et reprend la valeur 0. La signification de tir vient encore une fois de notre usage, c’est nous qui lui avons donné telle ou telle signification, à travers l’usage de la propriété dans notre programme.

Le missile va également affecter l’opacité de l’envahisseur, ce qui explique les trois lignes du programme de l’envahisseur où il remonte son opacité quand elle est inférieure à 100%.

mettez l’animation en route et regardez l’interaction des trois Sprites.

J’attire encore une fois votre attention sur le fait que chaque Sprite a été programmé séparément. Bien que les objets intéragissent les uns avec les autres (par l’intersection, ou par collage dans le cas du missile avec le héro), les programmes de chaque objet n’ont pas besoin de se communiquer directemment pour fonctionner. Ils n’ont pas besoin de propriété ou de variable globale partagé entre les différents comportements.


ESAAix - École supérieure d’art d’Aix-en-Provence - http://www.ecole-art-aix.fr