Ce topic sert à parler de l'architecture du projet au niveau programmation.
-------------------------------------------------------------------
Programmeur principal : harusame
Programmeur éventuel : Yami no Tenshi
-------------------------------------------------------------------
-------------------------------------------------------------------
javadoc slick2d : http://slick.cokeandcode.com/javadoc/
javadoc LWJGL : http://lwjgl.org/javadoc/
javadoc JAVA : http://docs.oracle.com/javase/1.4.2/docs/api/
Wiki slick2d : http://slick.cokeandcode.com/wiki/doku.php
Tutoriels slick2d : http://www.creationjeuxjava.fr/
-------------------------------------------------------------------
-------------------------------------------------------------------
Les classes actuelles du projet :
-Dans le package
characters, je met toutes les classes en rapport avec des personnages. Donc pour l'instant, le héros et les PNJ.
-Le package
Game est un fourre-tout dans lequel je met les classes seules où celles qui ne sont pas assez nombreuses encore pour nécessiter un package spéciales. Ces classes dans ce package sont amenées à bouger.
-Le package
GameStat contient les différentes états du jeu (les écrans en quelque sorte.) Pour l'instant il n'y en a que deux, l'écran titre et le jeu en lui même. (J'ai hésité à faire un état pour le menu, mais ça aurait été comme faire une map différente sur RM pour le menu. On aurait perdu la map en fond d’écran). Dans le futur, il y aura un état pour le menu d'entrée de nom, le menu de chargement, les crédits, et ce qui est du genre cinématique en dessin.
-Le package
Items contient comme sont nom l'indique tous les objets du jeu. (La classe Item est abstraite, il y aura aussi les interfaces pour les types d'objets et tous les objets avec leur action spécifique.)
-Le package
Launch contient les classes de lancement de l'application. C'est plus pour moi, j'aime bien séparé le point d'entrée du reste du programme et ça me permet de tester différentes configurations de lancement. Le point d'entrée est pour l'instant la classe "LauncherAvance".
-Le package
Loaders contient les classes de chargement des ressources qui sont chargées au démarrage du jeu. (les images, les sons...)
-Le package
Map contient la classe générique map et les classes l’étendant pour des zones plus spécifique (comme le village qui nécessite plus de couches de mapping). Dans la classe map sont écrites toutes les méthodes analysant ce qui est fait avec Tiled (les attributs et les propriétés...)
A venir dans le futur :
- Un package
Ennemis.
- Un package
Esprit.
- Un package pour gérer plus précisément les éléments d'interface à l’écran. (HUD, magasin, menus...)
-------------------------------------------------------------------
-------------------------------------------------------------------
Un diagramme de classe pour se faire une petite idée de l'organisation
(rapide, je n'ai pas mis les trop nombreuses méthodes ni les attributs) :
Les classes du package Loaders ne sont pas présentes afin de ne pas rendre le diagramme illisible, elle ne sont que des bibliothèques de ressources et
toutes les classes affichant des éléments à l'écran doivent y avoir accès.)LauncherAvance étend de
StateBasedGame (classe slick2d).
Les classe du package GameStats étendent
BasicGameState (classe slick2d).
Heros étend de
Thread pour gérer la gestion des touches dans un thread séparé de la boucle de jeu.
-------------------------------------------------------------------
Petit plus à savoir :
Pour l'instant la gestion des touches se fait dans la classe Heros, ce sera surement à changer plus tard.