27Fermer29
robinHoodLe 12/02/2013 à 21:18
il te faut des "couches"

déjà une api bas niveau bien pensée
* collisions standard
* buffers graphique
* blit d'images (tapant dans les buffers)
* animations (utilisant le blit d'image, à toi de voir ensuite si tu veut mater un simple getTick ou te taper des timers/events)
* ...

une autre moins bas niveau utilisant la première
* api de gestion des sprites
(banque d'anims, anims en cour, déplacement, collisions ... )
* api de gestion de la map
(init, affectation de tiles animés, blit, scroll, lecture/modification des tiles (avec des fonctions utilitaires générales genre get du tile à la pos x;y de l'écran))
* ...

encore une autre, reposant sur la précédente, gérant des choses cette fois plus "spécifiques"
* tirs (init, déplacement, collision, ...)
* explosions (addBoom(type, x, y), addBoomOn(sprite), ...)
* joueur (déplacement, interaction avec la map, gestion sac à dos, point de vie, ...)
* ennemis (intéligence, point de vie, ...)
* bonus
* ...

au passage si t'est chaud tu peu faire une belle api de déplacement générique gérant pourquoi pas des forces, direction etc ...

* création d'un objet "jeux" avec les listes d'objet de l'api de plus haut niveau, et des fonctions contenant la logique propre (genre test croisés de toutes les collisions joueur/tirs, ennemis/joueur, ennemis/tirs, tirs/tirs, ..., ..., ...)
(le but est qu'ici tu n'est pratiquement aucun "vrai" code, juste des appels et test croisés des apis)
utiliser des messages.
tu va devoir y passer tout de même, pour faire envoyer les info du joueur physique au coeur de ton moteur (ou du moins à "l'objet" joueur), mais dans un code à part bien spécifique

idéalement tout devrais être portable, les seul bout de code spécifique à la plateforme serais les blit bas niveau, le son, et les évent du joueur physique