dungeonanddeamon/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp
Estrela Allan p1923381 6c12f02787 Debut mouvement Mob
2020-04-30 18:05:19 +02:00

89 lines
1.5 KiB
C++

#include "GestionJeu.h"
#include <Sprite.hpp>
#include <CollisionShape2D.hpp>
#include <ResourceLoader.hpp>
#include <CircleShape2D.hpp>
#include <GodotGlobal.hpp>
#include <Texture.hpp>
#include <AnimatedSprite.hpp>
#include "MobsCorpACorpIA.h"
using namespace godot;
GestionJeu::GestionJeu()
{
gPlayer = GestionPlayer::_new();
gTerrain = GestionTerrain::_new();
gMobs = new GestionMobs();
gCollision = new GestionCollision(gMobs, gPlayer, gTerrain);
}
GestionJeu::~GestionJeu()
{
delete gPlayer;
}
void GestionJeu::_register_methods()
{
register_method((char*)"_init", &GestionJeu::_init);
register_method((char*)"_ready", &GestionJeu::_ready);
register_method((char*)"_process", &GestionJeu::_process);
}
void GestionJeu::_init()
{
Godot::print("Initialisation...");
create_scene();
Godot::print("Initialisation OK !");
}
void GestionJeu::_ready()
{
Godot::print("Ready...");
setup_scene();
Godot::print("Ready OK !");
}
void GestionJeu::_process()
{
gCollision->CheckCollisonSol();
Vector2 posPlayer = gPlayer->get_position();
for (MobsCorpACorpIA* m : gMobs->mobs)
{
m->UpdateTargetPosition(posPlayer);
}
}
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();
}