El regreso tras mucho tiempo...
Sinceramente, no sé lo que puede haber aquí.
This commit is contained in:
@@ -31,17 +31,21 @@ public:
|
||||
UE_LOG_INFO("Escena {0} ha sido cargada", _sceneName);
|
||||
|
||||
UE::AssetManager* as = Game::GetAssetManager();
|
||||
SDL_Texture* test1Texture = as->getTexture("test1");
|
||||
UE::Texture* test1Texture = as->getTexture("test1");
|
||||
|
||||
UE::Sprite sp1(test1Texture, as->getTexureRects("test1"), 0, 2, glm::vec2(55, 60), glm::vec2(100, 100));
|
||||
UE::Sprite sp1(test1Texture, 0, 2, glm::vec2(55, 60), glm::vec2(100, 100));
|
||||
|
||||
UE::Sprite sp2(test1Texture, as->getTexureRects("test1"), 0, 1, glm::vec2(50, 45), glm::vec2(145, 145));
|
||||
UE::Sprite sp2(test1Texture, 0, 1, glm::vec2(50, 45), glm::vec2(145, 145));
|
||||
|
||||
UE::Sprite bg(as->getTexture("bg1"), 1, 0, glm::vec2(0, 0), Game::GetRenderer()->GetScreenSize());
|
||||
|
||||
UE::Sprite mapSP(as->getTexture("PruebaMap"), 0, 2, glm::vec2(50, 45), glm::vec2(145, 145));
|
||||
|
||||
UE::Sprite bg(as->getTexture("bg1"), as->getTexureRects("bg1"), 1, 0, glm::vec2(0, 0), Game::GetRenderer()->GetScreenSize());
|
||||
|
||||
sprites.push_back(sp1);
|
||||
sprites.push_back(sp2);
|
||||
sprites.push_back(bg);
|
||||
sprites.push_back(mapSP);
|
||||
|
||||
UE::Font* OP_Regular = as->GetFont("OpenSans_Regular");
|
||||
//TTF_Font* OP_Bold = as->GetFont("OpenSans_Bold");
|
||||
@@ -92,7 +96,7 @@ public:
|
||||
ImguiRender();
|
||||
}
|
||||
|
||||
void SceneHandleEvents(SDL_Event* event)
|
||||
void SceneHandleEvents(SDL_Event* event) override
|
||||
{
|
||||
if (event->type == SDL_KEYDOWN)
|
||||
{
|
||||
@@ -130,14 +134,14 @@ public:
|
||||
private:
|
||||
void ImguiRender()
|
||||
{
|
||||
ImGui::Begin("DEBUG Stuff", &debugGUI);
|
||||
|
||||
ImGui::Checkbox("AssetManager Inspector: ", &assetMngGUI);
|
||||
ImGui::Checkbox("Renderer Inspector: ", &rendererGUI);
|
||||
ImGui::Checkbox("SceneManager Inspector: ", &sceneMngGUI);
|
||||
//ImGui::Begin("DEBUG Stuff", &debugGUI);
|
||||
//ImGui::Checkbox("AssetManager Inspector: ", &assetMngGUI);
|
||||
//ImGui::Checkbox("Renderer Inspector: ", &rendererGUI);
|
||||
//ImGui::Checkbox("SceneManager Inspector: ", &sceneMngGUI);
|
||||
//ImGui::End();
|
||||
|
||||
|
||||
ImGui::End();
|
||||
|
||||
if (debugGUI) { TestGUI(); }
|
||||
if(assetMngGUI) {}
|
||||
@@ -145,7 +149,7 @@ private:
|
||||
|
||||
void TestGUI()
|
||||
{
|
||||
ImGui::Begin("MainScene Test Stuff", &_windowOpen);
|
||||
ImGui::Begin("MainScene Test Stuff", &debugGUI);
|
||||
|
||||
ImGui::Text("En esta escena, hacemos pruebas del funcionamiento de UberEngine.");
|
||||
|
||||
@@ -198,6 +202,14 @@ private:
|
||||
|
||||
ImGui::Text("Rendering: ");
|
||||
ImGui::Text("El sprite esta en la layer: %d", sp.GetLayer());
|
||||
|
||||
ImGui::Text("Cambiar rect del Sprite: ");
|
||||
ImGui::SameLine();
|
||||
int textRect = 0;
|
||||
if (ImGui::InputInt("TextureRect", &textRect))
|
||||
{
|
||||
sp.SetTextureRect(textRect);
|
||||
}
|
||||
//Añadir un input para modificar la layer.
|
||||
|
||||
}
|
||||
|
||||
@@ -1,29 +1,206 @@
|
||||
#pragma once
|
||||
|
||||
#include "Scene\Scene.h"
|
||||
#include "Render\Renderer.h"
|
||||
#include "Logging\Logger.h"
|
||||
|
||||
#include "Assets\AssetManager.h"
|
||||
#include "Assets\Texture.h"
|
||||
|
||||
#include "Drawables\Sprite.h"
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
|
||||
class TestScene2 : public UE::Scene
|
||||
{
|
||||
public:
|
||||
|
||||
using Scene::Scene;
|
||||
TestScene2(std::string sceneName) : Scene(sceneName) {}
|
||||
|
||||
void SceneLoad() override
|
||||
{
|
||||
UE_LOG_INFO("Escena {0} ha sido cargada", _sceneName);
|
||||
|
||||
srand(255);
|
||||
|
||||
UE::AssetManager* as = Game::GetAssetManager();
|
||||
|
||||
UE::Texture* tx = as->getTexture("PruebaMap");
|
||||
|
||||
for (int y = 0; y < vAmount; y++)
|
||||
{
|
||||
|
||||
for (int x = 0; x < hAmount; x++)
|
||||
{
|
||||
glm::vec2 i(x, y);
|
||||
glm::vec2 size(100, 100);
|
||||
glm::vec2 pos = size * i;
|
||||
|
||||
UE::Sprite sp(tx, rand()%5, 1, pos, size);
|
||||
sprites.push_back(sp);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void SceneUpdate() override
|
||||
{
|
||||
UE_LOG_INFO("Escena {0} UPDATE", _sceneName);
|
||||
//UE_LOG_INFO("Escena {0} UPDATE", _sceneName);
|
||||
}
|
||||
|
||||
void SceneRender() override
|
||||
{
|
||||
UE::Renderer* renderer;
|
||||
renderer = Game::GetRenderer();
|
||||
|
||||
for (UE::Sprite& sp : sprites)
|
||||
{
|
||||
//Si el obj. no está activo, lo saltamos.
|
||||
if (sp.IsActive())
|
||||
{
|
||||
renderer->Render(sp);
|
||||
}
|
||||
}
|
||||
TestImGui();
|
||||
}
|
||||
|
||||
void SceneHandleEvents(SDL_Event* event) override
|
||||
{
|
||||
if (event->type == SDL_KEYDOWN)
|
||||
{
|
||||
switch (event->key.keysym.sym)
|
||||
{
|
||||
case SDLK_F2:
|
||||
{
|
||||
debugGUI = !debugGUI;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (event->type == SDL_MOUSEBUTTONDOWN)
|
||||
{
|
||||
UE::Renderer* rend = Game::GetRenderer();
|
||||
glm::ivec2 mPos(event->button.x, event->button.y);
|
||||
glm::ivec2 wPos = rend->ScreenToWorldCoords(mPos);
|
||||
GAME_LOG_TRACE("Posicion del raton: \n\tPantalla: {0}x{1}, Mundo: {2}x{3}: ", mPos.x, mPos.y, wPos.x, wPos.y);
|
||||
ModificarSprite(wPos);
|
||||
}
|
||||
}
|
||||
|
||||
void SceneUnload() override
|
||||
{
|
||||
UE_LOG_INFO("Escena {0} se ha descargado.", _sceneName);
|
||||
GAME_LOG_INFO("Escena {0} se ha descargado.", _sceneName);
|
||||
|
||||
sprites.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
void ModificarSprite(glm::ivec2 wPos)
|
||||
{
|
||||
SDL_Rect mouseRect = { wPos.x, wPos.y, 2, 2 };
|
||||
|
||||
for (int i = 0; i < sprites.size(); i++)
|
||||
{
|
||||
UE::Sprite& sp = sprites.at(i);
|
||||
|
||||
if (SDL_HasIntersection(&mouseRect, &sp.getPositionRect()))
|
||||
{
|
||||
int i = rand() % 5;
|
||||
sp.SetTextureRect(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TestImGui()
|
||||
{
|
||||
if (!debugGUI) { return; }
|
||||
|
||||
ImGui::Begin("Sprite Debug Stuff", &debugGUI);
|
||||
|
||||
//ImVec4 buttonColor;
|
||||
//if(ImGui::ColorEdit4("TestColor", &buttonColor.x)) {}
|
||||
|
||||
ImGui::Text("Elementos del vector Sprites: ");
|
||||
|
||||
if (ImGui::TreeNode("Sprites"))
|
||||
{
|
||||
//Generamos un Selectable para cada Sprite en el vector.
|
||||
int c = sprites.size();
|
||||
ImGui::Text("Seleccione un Sprite (0-%d)x(0-%d)", vAmount, hAmount);
|
||||
ImGui::InputInt2("Sprite Map Pos", _selectSpritePos);
|
||||
|
||||
int i = _selectSpritePos[1] * hAmount + _selectSpritePos[0];
|
||||
if (i > c) { i = -1; }
|
||||
_selectedSprite = i;
|
||||
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
if (ImGui::TreeNode("Selected Sprite Settings"))
|
||||
{
|
||||
if (_selectedSprite != -1)
|
||||
{
|
||||
UE::Sprite& sp = sprites.at(_selectedSprite);
|
||||
|
||||
ImGui::Text("Status: ");
|
||||
const char* st = (sp.IsActive() ? "Sprite Activado" : "Sprite Desactivado");
|
||||
ImGui::Text("El Sprite esta: %s", st);
|
||||
|
||||
if (ImGui::Button("Activar Sprite")) { sp.SetActive(true); }
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("desactivar Sprite")) { sp.SetActive(false); }
|
||||
|
||||
ImGui::Text("Transform: ");
|
||||
glm::vec2 pos = sp.GetPosition();
|
||||
glm::vec2 size = sp.GetSize();
|
||||
if (ImGui::SliderFloat2("Sprite Position", &pos.x, -5000, 5000))
|
||||
{
|
||||
sp.SetPosition(pos);
|
||||
}
|
||||
if (ImGui::SliderFloat2("Sprite Size", &size.x, -2000, 2000))
|
||||
{
|
||||
sp.SetSize(size);
|
||||
}
|
||||
|
||||
ImGui::Text("Rendering: ");
|
||||
ImGui::Text("El sprite esta en la layer: %d", sp.GetLayer());
|
||||
|
||||
ImGui::Text("Cambiar rect del Sprite: ");
|
||||
ImGui::SameLine();
|
||||
int textRect = 0;
|
||||
if (ImGui::InputInt("TextureRect", &textRect))
|
||||
{
|
||||
sp.SetTextureRect(textRect);
|
||||
}
|
||||
//Añadir un input para modificar la layer.
|
||||
|
||||
}
|
||||
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
const int vAmount = 10;
|
||||
const int hAmount = 10;
|
||||
|
||||
|
||||
std::vector<UE::Sprite> sprites = {};
|
||||
|
||||
|
||||
//IMGUI
|
||||
bool debugGUI = false;
|
||||
int _selectedSprite = 0;
|
||||
int _selectSpritePos[2] = { 0,0 };
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user