~ / M2PGI / IHM / tps / 2-paccraft /
© 2007—2008 - Renaud Blanch
Le but de ce TPs est de mieux cerner les apports de l'emploi d'une architecture logicielle fondée sur un modèle comme PAC qui incite à bien séparer l'interface utilisateur du noyau fonctionnel d'une application.
Le cas d'étude que nous allons utiliser est un clone de WarCraft: Orcs & Humans, le jeu de Blizzard sorti en 1994. La copie d'écran ci-dessous vous permet de vous faire une idée de l'interface qu'il offre :
Le but du TP est de réaliser les mécanismes qui sont utilisés dans cette interface, sans pour autant aller jusqu'au game play et à la qualité graphique (sic) du jeu original. Ce qui va nous importer est :
Avant de se lancer dans la réalisation, vous allez spécifier l'architecture PAC que vous utiliserez par la suite. Celle-ci doit prendre en compte les différentes contraintes suivantes :
Proposez une architecture pour votre application sous la forme d'un arbre d'agents PAC illustrant l'état de l'application avec un chateau et deux paysans dont un sélectionné sur le plateau.
Justifiez chaque point de vos choix de conception à l'aide des règles vues en cours ou d'arguments précis.
Détaillez les agents en indiquant où sont stockés les différents états (caractéristiques des unités, contenu de la carte, etc.) et comment s'effectuent les principales communications (lors de la construction de l'interface en particulier).
Spécifiez la manière dont s'effectueront les principales interactions (déplacement de la partie visible du plateau, sélection des unités, etc.)
Ces spécifications sont à rendre rédigées sous forme papier la semaine prochaine. Votre réalisation finale sera confrontée à cette spécification lors de l'évaluation.
Récupérez l'archive contenant le squelette d'application proposé. Il est donné à titre indicatif. Il est normal qu'il ne corresponde pas à votre dossier de spécification, puisqu'il n'y a pas de solution unique. Ce squelette vous donne simplement un exemple de code qui pourra vous être utile, n'hésitez pas à en partir et à le modifier selon vos choix de conception.
Faites en sorte que lorsque l'on clique sur une unité, les informations qui la concerne (position) s'affiche dans un panneau d'information à gauche et que si l'on clique sur le fond de la carte, ces informations disparaissent. Pensez à mettre en valeur l'objet sélectionné pour qu'on puisse le repérer (par exemple en l'entourant d'un halo de couleur).
Introduisez deux types d'unité (paysans et ferme, voir cette description des unités si vous souhaitez en savoir plus) ayant des caractéristiques distinctes (couleur et taille). Privilégiez la factorisation du code, vérifiez que le panneau d'information continue à fonctionner.
Introduisez la vue multiple sur le plan en insérant en haut à gauche une mini-carte qui comporte en vue réduite la totalité du terrain (carré de 150 pixels de côté), les unités en présence, et affiche quelle partie est visible dans l'aire principale en affichant un contour rectangulaire autour de la zone (c'est le rectangle situé en bas à droite de la mini-carte située en haut à gauche sur la copie d'écran). Assurez-vous qu'on peut sélectionner les unités dans la mini-carte comme dans la carte principale.
Ajoutez la gestion de ressources, c'est-à-dire :
Ajoutez des interactions pour modifier la partie de la carte qui est visible (par exemple, manipulation directe du rectangle dans la mini-carte, manipulation de la vue principale avec une "main" à la Acrobat Reader...).
Bonus, si (et seulement si) vous avez fait tout le reste, ajoutez ce que bon vous semble à votre application, par exemple :
mise à jour : 14 novembre 2007