diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp index ca3f05f..bd11f0b 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.cpp @@ -13,6 +13,7 @@ using namespace godot; GestionJeu::GestionJeu() { gPlayer = GestionPlayer::_new(); + gTerrain = GestionTerrain::_new(); } GestionJeu::~GestionJeu() @@ -50,7 +51,9 @@ void GestionJeu::_process() void GestionJeu::create_scene() { + Godot::print("Add childs"); add_child(gPlayer); + add_child(gTerrain); } void GestionJeu::setup_scene() diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.h b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.h index 3f25825..0929153 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.h +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionJeu.h @@ -21,7 +21,7 @@ public: //Gestion des deifferents parties du jeu GestionPlayer* gPlayer; GestionMobs gMobs; - GestionTerrain gTerrain; + GestionTerrain* gTerrain; GestionCollision gCollision; GestionItem gItem; GestionIdentifiant gId; diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.cpp b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.cpp index 8df5276..80cc054 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.cpp +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.cpp @@ -1,11 +1,72 @@ #include "GestionTerrain.h" +#include +#include +#include +#include + +using namespace godot; + +GestionTerrain::GestionTerrain() +{ + Godot::print("Constructeur"); +} + +GestionTerrain::~GestionTerrain() +{ +} + +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() +{ + Godot::print("Je suis le sol"); +} + +void GestionTerrain::_init() +{ +} + +void GestionTerrain::_ready() +{ +} void GestionTerrain::AjoutMur(int sizeX, int sizeY, int posX, int posY) { + } void GestionTerrain::AjoutSolSolide(int sizeX, int sizeY, int posX, int 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_ptr = ResourceLoader::get_singleton()->load("res://sol.png"); + sprite->set_texture(texture_ptr); + + m->add_child(sprite); + m->set_transform(t); + + add_child(m); } void GestionTerrain::AjoutSolTraversable(int sizeX, int sizeY, int posX, int posY) diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.h b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.h index 4fbc23e..33703d4 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.h +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.h @@ -1,12 +1,26 @@ #pragma once +#include +#include +#include #include #include "Terrain.h" -class GestionTerrain +using namespace godot; + +class GestionTerrain : public TileMap { +private: + GODOT_CLASS(GestionTerrain, TileMap) + public: - std::vector terrains; + GestionTerrain(); + ~GestionTerrain(); + + void static _register_methods(); + void _process(); + void _init(); + void _ready(); public: void AjoutMur(int sizeX, int sizeY, int posX, int posY); diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/GodotLibrary.cpp b/DungeonAndDeamonScript/DungeonAndDemaonScript/GodotLibrary.cpp index 34ee7d1..9c72de2 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/GodotLibrary.cpp +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/GodotLibrary.cpp @@ -14,4 +14,6 @@ extern "C" void GDN_EXPORT godot_nativescript_init(void* handle) { Godot::nativescript_init(handle); register_class(); register_class(); + register_class(); + register_class(); } \ No newline at end of file diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/Terrain.cpp b/DungeonAndDeamonScript/DungeonAndDemaonScript/Terrain.cpp index 2540d8d..316abbd 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/Terrain.cpp +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/Terrain.cpp @@ -1 +1,5 @@ #include "Terrain.h" + +void Terrain::_register_methods() +{ +} diff --git a/DungeonAndDeamonScript/DungeonAndDemaonScript/Terrain.h b/DungeonAndDeamonScript/DungeonAndDemaonScript/Terrain.h index aa55ab9..db8a23c 100644 --- a/DungeonAndDeamonScript/DungeonAndDemaonScript/Terrain.h +++ b/DungeonAndDeamonScript/DungeonAndDemaonScript/Terrain.h @@ -1,8 +1,14 @@ #pragma once #include +#include class Terrain : public godot::StaticBody2D { +private: + GODOT_CLASS(Terrain, StaticBody2D) + +public: + void static _register_methods(); };