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

160 lines
2.8 KiB
C++

#include "MobsCorpACorpIA.h"
#include <ConfigFile.hpp>
#include <Input.hpp>
#include <ResourceLoader.hpp>
#include <Texture.hpp>
#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;
}