ILevel, LevelMetadata et IMap
Description
Le nœud ILevel est un élément de base utilisé pour créer et paramétrer les niveaux.
C'est également lui qui contient les statistiques du joueur au cours d'une partie (vie, ressources).
Les niveaux sont composés de vagues, elles meme composées d'etapes.
ILevel utilise le nœud Clock afin d'éxecuter son code metier à interval régulier, par defaut tous les 5 ticks (10 ticks = 1 seconds).
Pour l'instant les seuls etapes disponibles sont SPAWN et WAIT. La nouvelle architecture permet d'en rajouter de nouvelles facilement, voir class WaveStep.
Créer un niveau "from scratch"
Dans l'ordre :
Map
- Godot > Scenes > New inherited scene... >
res://scenes/map/i_map.tscn - Sauvegarder nouvelle map dans
res://scenes/map/maps/<nom_map>.tscn - Dessiner map depuis la TileMapPlains
- Ajouter autant de node
Path2Dque nécessaire au nodePathspuis dessiner les chemins
Level
- Godot > Scenes > New inherited scene... >
res://scenes/level/i_level.tscn - Sauvegarder nouvelle map dans
res://scenes/level/levels/. Le nom du fichier doit etre<level_id>.tscn - Sélectionner le node
ILevelnouvellement cree et configurer ses proprietes.
Waves
- Creer un fichier
res://resources/levels/<level_id>.json - Remplire le fichier selon les standards suivants :
- base:
{
"waves": [
// waves
]
}
- vagues:
{
"waves": [
[
// steps
],
]
}
- step:
{
"waves": [
[
{
"enemy_id": "ene.01",
"count": 1,
"spawner": 1
},
{
"wait_s": 5.25
}
]
]
}
Ici nous avons un niveau composé d'une vague, elle meme composée de deux étapes : faire apparaitre 1 enemie
ene.01sur le spawner 1, puis attendre 5.25 seconds.
Exemples complets dans le projet godot