#include "MobsCorpACorpIA.h" #include #include #include #include #include "MobsCorpACorp.h" #include "GestionPlayer.h" MobsCorpACorpIA::MobsCorpACorpIA() { sprite_MobsCorpACorp_ptr = Sprite::_new(); collision_MobsCorpACorp_ptr = CollisionShape2D::_new(); texture_MobsCorpACorp_ptr.instance(); texture_MobsCorpACorp_ptr->_new(); shape_MobsCorpACorp_ptr.instance(); shape_MobsCorpACorp_ptr->_new(); } void MobsCorpACorpIA::_register_methods() { Godot::print("register Mobs..."); register_method("_physics_process", &MobsCorpACorpIA::_physics_process); register_method("_process", &MobsCorpACorpIA::_process); register_method("_init", &MobsCorpACorpIA::_init); register_method("_ready", &MobsCorpACorpIA::_ready); Godot::print("register Mobs OK!"); } void MobsCorpACorpIA::_physics_process(float dt) { mouvement(dt); m.velocity = move_and_slide(m.velocity); } void MobsCorpACorpIA::_process(float delta) { } void MobsCorpACorpIA::_init() { Godot::print("init Mobs"); createMobsCorpACorp(); } void MobsCorpACorpIA::createMobsCorpACorp() { add_child(sprite_MobsCorpACorp_ptr); add_child(collision_MobsCorpACorp_ptr); Godot::print("Creation mobs"); } void MobsCorpACorpIA::_ready() { setupMobsCorpACorp(); } void MobsCorpACorpIA::setupMobsCorpACorp() { //Setup du shape Godot::print("SetUp de Shape Mobs"); shape_MobsCorpACorp_ptr.ptr()->_new(); //Chargement de la texture Godot::print("SetUp de Texture Mobs"); texture_MobsCorpACorp_ptr = ResourceLoader::get_singleton()->load("res://Character/Fire Elemental Sprite Sheet/fireelemental00.png"); //setup du sprite Godot::print("SetUp de Sprite Mobs"); sprite_MobsCorpACorp_ptr->set_texture(texture_MobsCorpACorp_ptr); //setup du collision Shape Godot::print("SetUp de CollisionShape Mobs"); collision_MobsCorpACorp_ptr->set_shape(shape_MobsCorpACorp_ptr); } void MobsCorpACorpIA::setPosition(int x, int y) { Transform2D t; Vector2 pos; Size2 s; //setup de la size s.x = 1; s.y = 1; pos.x = x; pos.y = y; t.set_origin(pos); t.scale(s); set_transform(t); } void MobsCorpACorpIA::mouvement(float dt) { Vector2 pos; m.velocity = Vector2(0, 0); if (on_ground) { m.velocity.y = 0.0f; } else { //m.velocity.y += gravity * dt; } if (pos.x < TargetPosition.x) { droit(); }else if (pos.x > TargetPosition.x) { gauche(); } if (pos.y < TargetPosition.y) { //saut(); } else if (pos.x > TargetPosition.x) { //bas(); } } void MobsCorpACorpIA::droit() { Godot::print("Deplacement mob a droite"); m.velocity.x = speed; } void MobsCorpACorpIA::gauche() { Godot::print("Deplacement mob a gauche"); m.velocity.x = -speed; } void MobsCorpACorpIA::bas() { } void MobsCorpACorpIA::saut() { m.velocity.y = power_jump; }