mirror of
https://forge.univ-lyon1.fr/tplifap4/dungeonanddeamon.git
synced 2024-02-27 13:31:50 +01:00
118 lines
2.6 KiB
C++
118 lines
2.6 KiB
C++
#include "GestionTerrain.h"
|
||
#include <TileMap.hpp>
|
||
#include <ResourceLoader.hpp>
|
||
#include <Sprite.hpp>
|
||
#include <Texture.hpp>
|
||
|
||
using namespace godot;
|
||
|
||
GestionTerrain::GestionTerrain()
|
||
{
|
||
//Godot::print("Constructeur Terrain");
|
||
}
|
||
|
||
GestionTerrain::~GestionTerrain()
|
||
{
|
||
Array childrens = this->get_children();
|
||
for (int i = 0; i < childrens.size(); i++)
|
||
{
|
||
((Node*)childrens[i])->queue_free();
|
||
}
|
||
}
|
||
|
||
void GestionTerrain::_register_methods()
|
||
{
|
||
Godot::print("Register");
|
||
register_method("_process", &GestionTerrain::_process);
|
||
register_method("_init", &GestionTerrain::_init);
|
||
register_method("_ready", &GestionTerrain::_ready);
|
||
}
|
||
|
||
void GestionTerrain::_process()
|
||
{
|
||
}
|
||
|
||
void GestionTerrain::_init()
|
||
{
|
||
}
|
||
|
||
void GestionTerrain::_ready()
|
||
{
|
||
}
|
||
/**
|
||
* <summary>Permet l'ajout de murs</summary>
|
||
* <param name="posX">Position dans la largeur</param>
|
||
* <param name="posY">Position dans la hauteur</param>
|
||
* <param name="sizeX">Echelle en largeur</param>
|
||
* <param name="sizeY"Echelle en hauteur></param>
|
||
*/
|
||
void GestionTerrain::AjoutMur(float sizeX, float sizeY, float posX, float posY)
|
||
{
|
||
|
||
}
|
||
|
||
/**
|
||
* <summary>Permet l'ajout de sols</summary>
|
||
* <param name="posX">Position dans la largeur</param>
|
||
* <param name="posY">Position dans la hauteur</param>
|
||
* <param name="sizeX">Echelle en largeur</param>
|
||
* <param name="sizeY"Echelle en hauteur></param>
|
||
*/
|
||
void GestionTerrain::AjoutSolSolide(float sizeX, float sizeY, float posX, float posY)
|
||
{
|
||
Godot::print("Ajout sol solide");
|
||
Transform2D t;
|
||
Vector2 v;
|
||
Size2 s;
|
||
|
||
//setup de la size
|
||
s.x = sizeX;
|
||
s.y = sizeY;
|
||
v.x = posX;
|
||
v.y = posY;
|
||
t.set_origin(v);
|
||
t.scale(s);
|
||
|
||
StaticBody2D* m = StaticBody2D::_new();
|
||
|
||
Sprite* sprite = Sprite::_new();
|
||
|
||
Ref<Texture> texture_ptr = ResourceLoader::get_singleton()->load("res://sol.png");
|
||
sprite->set_texture(texture_ptr);
|
||
|
||
m->add_child(sprite);
|
||
m->set_transform(t);
|
||
|
||
add_child(m);
|
||
elems_terrains.push_back(m);
|
||
}
|
||
|
||
/**
|
||
* <summary>Permet l'ajout de sols traversables</summary>
|
||
* <param name="posX">Position dans la largeur</param>
|
||
* <param name="posY">Position dans la hauteur</param>
|
||
* <param name="sizeX">Echelle en largeur</param>
|
||
* <param name="sizeY"Echelle en hauteur></param>
|
||
*/
|
||
void GestionTerrain::AjoutSolTraversable(float sizeX, float sizeY, float posX, float posY)
|
||
{
|
||
}
|
||
|
||
/**
|
||
* <summary>Permet la suppression de tous les elements du terrains</summary>
|
||
*/
|
||
void GestionTerrain::SuppressionTout()
|
||
{
|
||
}
|
||
|
||
/**
|
||
* <summary>Permet une g<>n<EFBFBD>ration de base des <20>l<EFBFBD>ments du terrains</summary>
|
||
*/
|
||
void GestionTerrain::GenerationCarte()
|
||
{
|
||
AjoutSolSolide(1, 1, 85, 300);
|
||
AjoutSolSolide(1, 1, 255, 300);
|
||
AjoutSolSolide(1, 1, 340, 300);
|
||
AjoutSolSolide(1, 1, 425, 300);
|
||
}
|