Le module lionengine-game est le principal module de jeu. Il contient une API haut niveau complète, conçue pour fournir les outils essentiels à tout développement de jeux, incluant une architecture modulaire.
Voici les différents packages:
Voici une brève présentation de l'API haut niveau et de son architecture (seul les principaux outils sont présentés):
ObjectGame
: Représentation minimaliste d'un objet avec un identifiant unique, configurable et gérableCameraGame
: Implémentation standard d'une caméra, pouvant suivre un objetWorldGame
: Conteneur de jeu standard, permettant de sauvegarder et de charger un monde facilementCursor
: Représentation de la souris en jeu, synchronisée ou non sur celle du système d'exploitationTextGame
: Texte pouvant être utilisé dans un axe de jeu 2D, converti automatiquement sur l'axe de l'écranHandlerObjectGame
: Peut gérer une liste d'objet, afin de les mettre à jour et de les afficher facilement![]()
EffectGame
: Peut être utilisé pour créer des effets visuels
map package
: Représentation standard d'une map à base de tile, avec une implémentation de base
- Système de collision
CollisionOperation
: Fonction décrivant comment calculer une collision entre une entité et un tileCollisionTileCategory
: Permet de grouper les collisions par zone (centre de l'entité, genoux, main...)Comment fonctionne le processus de collision ?
![]()
Un tile est représenté par:
[X,Y]
(position sur la map)pattern
(numéro de tilesheet)number
(numéro d'image sur la tilesheet)
![]()
![]()
Tilesheet Map utilisant la tilesheet
ObjectType
: Interface devant être implémentée par un type énuméré représentant vos objetsSetupGame
: Contient les ressources uniques qui peuvent êtres partagées par les différentes instances d'objetsFactoryGame
: Instancie des objets à partir de leur énumération, en fournissant les ressources nécessaires à partir de leursetup
correspondant![]()
ProjectileGame
: Implémentation de base d'un projectile, pouvant supporter des mouvements personnalisésLauncherProjectileGame
: Lanceur de projectile de base, permettant de lancer simplement un projectile, ou sur une cible désignéeHandlerProjectileGame
: Gestionnaire spécial contenant tous les projectiles![]()
Configurable
: Supporte les configurations externes à partir d'un fichier XMLBody
: Simule la gravité à partir d'une masseCollidable
: Supporte la détection de collision avec d'autrescollidables
Rasterable
: Supporte l'effet RasterBar
- Tile extractor: Permet d'extraire tous les tiles uniques d'un level rip
![]()
- Level rip converter: Génère un niveau de données à partir d'un level rip et de ses tilesheets
![]()
Les ressources en rapport avec les map doivent êtres organisées comme ci-dessous afin de pouvoir gérer plusieurs themes de map:
Lire la suite: Architecture Générale - Module Plateforme