#include "GestionJeu.h" #include #include #include #include #include #include #include #include "MobsCorpACorpIA.h" using namespace godot; GestionJeu::GestionJeu() { //Instanciation des principales classes des gestion des elmts du jeu gPlayer = GestionPlayer::_new(); gTerrain = GestionTerrain::_new(); gMobs = new GestionMobs(); gCollision = new GestionCollision(gMobs, gPlayer, gTerrain); } GestionJeu::~GestionJeu() { delete gTerrain; delete gPlayer; delete gMobs; delete gCollision; } /** * Associe les méthodes GODOT aux méthodes de la classe */ void GestionJeu::_register_methods() { register_method((char*)"_init", &GestionJeu::_init); register_method((char*)"_ready", &GestionJeu::_ready); register_method((char*)"_process", &GestionJeu::_process); } /** * Methode éxécutée lors de l'initialison de la classe (par godot) */ void GestionJeu::_init() { //Godot::print("Initialisation..."); create_scene(); //Godot::print("Initialisation OK !"); } /** * Methode éxécutée suivant l'initialison de la classe */ void GestionJeu::_ready() { //Godot::print("Ready..."); setup_scene(); //Godot::print("Ready OK !"); } /** * Methode éxécutée en boucle par Godot */ void GestionJeu::_process() { // Check des collisions gCollision->CheckCollisonSol(); Vector2 posPlayer = gPlayer->get_position(); for (MobsCorpACorpIA* m : gMobs->mobs) { m->UpdateTargetPosition(posPlayer); } } /** * Méthdode appelé lors de l'initilisation */ void GestionJeu::create_scene() { add_child(gPlayer); add_child(gTerrain); gMobs->AjoutMobC2C(10, 20, 5, 0, 1, 25); for (MobsCorpACorpIA* m : gMobs->mobs) { auto mob = (MobsCorpACorpIA*) m; Godot::print("Add child mob"); add_child(m); m->setPosition(15, 150); } } /** * */ void GestionJeu::setup_scene() { gPlayer->setPosition(15, 150); gTerrain->GenerationCarte(); }