Y Sorting

This commit is contained in:
Isuru Samarathunga
2025-09-14 07:40:30 +05:30
parent 0c4205acbb
commit 4f4f25e165
16 changed files with 103 additions and 45 deletions

View File

@ -1,24 +1,58 @@
#include <Game.hpp>
#include <IAEngine/Input.hpp>
#include <IAEngine/Rendering/Camera.hpp>
#include <IAEngine/Components/SpriteRenderer.hpp>
#include <IACore/File.hpp>
namespace ia::iae::game
{
RefPtr<iae::Scene> scene;
RefPtr<Scene> scene;
Texture g_tex;
Texture g_tex2;
RefPtr<Node> g_player;
VOID Game::Initialize()
{
scene = Engine::CreateScene();
scene->YSortingEnabled() = true;
Engine::ChangeScene(scene);
const auto d = File::ReadToVector("Graphics/1.jpg");
g_tex = Engine::CreateTexture(d.data(), d.size());
g_tex2 = Engine::CreateTexture(d.data(), d.size());
g_player = MakeRefPtr<Node>();
{
const auto t = g_player->AddComponent<SpriteRendererComponent>();
t->AddAnimation({
.ShouldLoop = true,
.Keys = {
SpriteRendererComponent::AnimationKeyFrame {
.Scale = {0.1f, 0.1f, 0.1f},
.Texture = Engine::CreateTexture(File::ReadToVector("Graphics/green.png")),
}
},
});
t->BakeAnimations();
}
g_player->SetLocalPosition({200, 200, 0});
const auto obstacle = MakeRefPtr<Node>();
{
const auto t = obstacle->AddComponent<SpriteRendererComponent>();
t->AddAnimation({
.ShouldLoop = true,
.Keys = {
SpriteRendererComponent::AnimationKeyFrame {
.Scale = {0.25f, 0.25f, 0.1f},
.Texture = Engine::CreateTexture(File::ReadToVector("Graphics/red.png")),
}
},
});
t->BakeAnimations();
}
obstacle->SortOffset() = 20;
obstacle->SetLocalPosition({150, 100, 0});
scene->AddNode(g_player);
scene->AddNode(obstacle);
}
VOID Game::Terminate()
@ -27,8 +61,6 @@ namespace ia::iae::game
VOID Game::Update()
{
g_tex.Draw({200.0f, 150.0f, 10.0f}, {1.0f, 1.0f, 1.0f}, 0.0f, false, false, {1.0f, 1.0f, 1.0f, 1.0f});
g_tex2.Draw({300.0f, 150.0f, 15.0f}, {1.0f, 1.0f, 1.0f}, 0.0f, false, false, {1.0f, 0.0f, 1.0f, 1.0f});
//iae::Renderer::GetCamera()->Position().x += 0.1f;
g_player->SetLocalPosition(g_player->GetLocalPosition() + glm::vec3{Input::GetDirectionalInput(), 0.0f});
}
}