II - Introduction a
Transcription
II - Introduction a
Java Arcade 2D Engine Documentation II Introduction à Jade Tous droits réservés ( 2003 ) – A.PAUTROT Table des matières Affichage et animation............................................................................................................................3 Affichage.................................................................................................................................3 Animation................................................................................................................................4 Règles du jeu, comportements des sprites et interactivité......................................................................5 Règles de jeu...........................................................................................................................5 Comportements.......................................................................................................................5 Interactivité.............................................................................................................................5 Boucle de jeu et boucle principale..........................................................................................5 Chargement de jeu.................................................................................................................................6 Affichage et animation Affichage Afin d’expliquer le fonctionnement de l’affichage dans Jade, prenons l’exemple de l’écran de jeu suivant: Fond d’écran Score Elément de décor Bonus Piège Personnage Echelle Plate-forme Sol Dans cet écran de jeu, l’affichage se constitue en plusieurs étapes : l’affichage d’un fond d’écran (le fond semi-uni mauve) l’affichage d’un décor (le sol, les murs, les plates-formes, l’échelle) l’affichage des sprites du jeu (les bornes clignotantes rouges/vertes, les bonus, les pièges et les personnages) l’affichage du score. L’ordre d’affichage est important et permet par exemple aux personnages d’être dessinés devant les éléments du décor. L’affichage est décomposé dans cet exemple en trois parties différentes : un fond d’écran mauve, un décor et un layer de sprites. Un layer de sprites est une surface sur laquelle les sprites du jeu s’affichent. Notez que l’affichage d’un jeu ne repose pas sur une architecture figée et que Jade ne s’occupe pas de faire cet affichage ; c’est au programmeur de faire l’affichage dont il a besoin. Il est possible de créer n’importe quel type d’affichage en utilisant les composants fournis par Jade. L’affichage se repose principalement sur deux composants : les décors de fond et les layers de sprites. Vous pouvez combiner et utiliser autant de ces composants que voulu pour faire votre affichage. Le décor de fond de l’exemple ci-dessus est un décor de fond composite constitué de deux fonds différents : un fond mauve (une image répétée horizontalement et verticalement sur tout l’écran) et un décor affiché par-dessus, composé de morceaux d’images (appelé carte d’images). Jade prévoit les fonctions et les outils permettant de créer ce genre de fond d’écran. (voir le chapitre « Fonds d’écran » du document « Document III – Guide de programmation » et la documentation des outils du SDK). L’affichage des sprites est effectué par le layer de sprite. Le layer de sprite anime graphiquement les sprites (il produit par exemple l’animation des personnages qui marchent) et affiche ceux-ci. (voir le chapitre « Les layers de sprites » du document « Document III – Guide de programmation »). L’affichage du score est fait grâce à une police bitmap utilisée sur la surface graphique de l’écran d’affichage (voir la section « Affichage utilisateur » du chapitre « L’affichage » du document « Document III – Guide de programmation »). Animation L’animation du jeu est une boucle, exécutée à intervalle fixe. La boucle est appelée boucle de jeu et est responsable d’appliquer les règles de jeu, de déplacer les sprites et de faire l’affichage (voir le chapitre « Les scènes » du document « Document III – Guide de programmation »). Cette boucle est exécutée par le moteur d’animation. Celui-ci s’occupe de mesurer le temps écoulé entre chaque appel pour synchroniser la vitesse d’exécution et s’occupe aussi de copier le contenu de l’affichage du jeu dans un double buffer (voir la section « Double buffer » du chapitre « L’affichage » du document « Document III – Guide de programmation »). L’animation des sprites est la responsabilité du layer de sprite. Le layer s’occupe d’afficher les sprites qu’il contient, mais aussi d’en faire l’animation. Dans notre exemple, c’est lui qui fait marcher les personnages et clignoter les bornes rouges/vertes. Par contre il ne s’occupe pas du déplacement des sprites, qui est à la charge du développeur (voir le chapitre « Les layers de sprites » du document « Document III – Guide de programmation »). Les animations de sprites sont des ressources que Jade permet de créer grâce à ses outils (voir la documentation des outils du SDK). Règles du jeu, comportements des sprites et interactivité Règles de jeu Les règles du jeu définissent la manière dont le jeu réagit face à tout événement. Ces règles vont du calcul d’un score à la sortie du jeu lorsque le joueur a perdu toutes ses vies. Comportements Les comportements définissent la réaction des sprites. En général, on applique le même comportement générique à tous les sprites d’une même famille. Ainsi, on peut faire marcher tous les personnages à l’écran grâce au même comportement, faire rebondir toutes les balles d’un casse-brique, etc. (voir la section « Enumération des sprites d’une famille » du chapitre « Les familles » du document « Document III – Guide de programmation »). Interactivité L'interactivité est essentielle dans un jeu. Pour cela, un jeu dispose du clavier et de la souris. Certains sprites du jeu répondent en fonction de l'utilisateur: en général, un seul sprite (un personnage par exemple) répond aux commandes de l’utilisateur, d’autres sprites étant créés selon les actions de l’utilisateur, comme par exemple des tirs (voir les chapitres « Le clavier » et « La souris » du document « Document III – Guide de programmation »). Boucle de jeu et boucle principale Les règles du jeu, les comportements des sprites et l’interactivité sont situés dans une boucle de jeu et sont exécutés avant chaque affichage de l’écran de jeu. Cette fonction est présente pour chaque scène du jeu, dont c’est le rôle de la définir (voir le chapitre « Les scènes » du document « Document III – Guide de programmation »). Un jeu se compose d’une boucle principale qui s’occupe de l’agencement et du lancement des scènes. C’est dans cette boucle que seront testé le nombre de vies restantes, le niveau à charger, etc. afin de lancer les scènes appropriées. Chaque scène est une boucle imbriquée dans la boucle principale, qui gère l’animation et l’interactivité d’un écran et interagit avec la boucle principale en changeant par exemple le nombre de vies lorsque l’énergie du joueur tombe à zéro et en stoppant la scène pour en sortir. Chargement de jeu Le chargement d’un jeu est un processus incontournable. Il est possible d’effectuer un chargement très simple des jeux comme de faire un chargement plus complet mettant en scène un pré-chargement des classes du jeu, l’affichage de pourcentage de progression et de divers messages de chargement. Jade fourni trois classes différentes permettant de contenir un jeu, trois modes de fonctionnement différents : sous forme d’applet, sous forme d’application fenêtrée et sous forme d’application plein écran. Chacun de ces containeurs de jeu utilise un chargeur de jeu, afin de faire le chargement et le lancement d’un jeu. Un seul chargeur de jeu doit être défini pour chaque jeu, quel que soit son mode de fonctionnement, rendant possible son exécution sous les trois formes citées cidessus, sans aucun changement. Les containeurs pré-chargent toujours les classes du moteur avant de donner la main au chargeur de jeu (voir le chapitre « Chargement et exécution » du document « Document III – Guide de programmation »). Jade fourni une interface graphique de chargement afin d’afficher les pourcentages et messages de progression du chargement. Il est aussi possible de refaire sa propre interface de chargement, afin de la personnaliser graphiquement (voir la section « Interface de chargement » du chapitre « Chargement et exécution » du document « Document III – Guide de programmation »).