Engine Single Instance Mode
This commit is contained in:
@ -1,8 +1,5 @@
|
||||
#include <Game.hpp>
|
||||
#include <Player.hpp>
|
||||
#include <Ground.hpp>
|
||||
|
||||
#include <IAEngine/ResourceManager.hpp>
|
||||
#include <IAEngine/Rendering/Camera.hpp>
|
||||
|
||||
#include <IACore/File.hpp>
|
||||
@ -11,33 +8,24 @@ namespace ia::iae::game
|
||||
{
|
||||
RefPtr<iae::Scene> scene;
|
||||
|
||||
ResourceManager* g_resourceManager{};
|
||||
|
||||
RefPtr<Texture> g_tex;
|
||||
Texture g_tex;
|
||||
|
||||
VOID Game::Initialize()
|
||||
{
|
||||
g_resourceManager = m_engine->RegisterResourceManager<ResourceManager>();
|
||||
|
||||
scene = m_engine->CreateScene();
|
||||
m_engine->ChangeScene(scene);
|
||||
|
||||
iae::Renderer::AddDebugUIWindow("Debug Window", {100, 100}, {100, 200}, [](){});
|
||||
scene = Engine::CreateScene();
|
||||
Engine::ChangeScene(scene);
|
||||
|
||||
const auto d = File::ReadToVector("Graphics/1.jpg");
|
||||
g_tex = g_resourceManager->CreateTexture(d.data(), d.size());
|
||||
|
||||
|
||||
g_tex = Engine::CreateTexture(d.data(), d.size());
|
||||
}
|
||||
|
||||
VOID Game::Terminate()
|
||||
{
|
||||
g_tex.reset();
|
||||
}
|
||||
|
||||
VOID Game::Update()
|
||||
{
|
||||
g_tex->Draw({200.0f, 150.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, 0.0f, false, false, {1.0f, 1.0f, 1.0f, 1.0f});
|
||||
g_tex.Draw({200.0f, 150.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, 0.0f, false, false, {1.0f, 1.0f, 1.0f, 1.0f});
|
||||
iae::Renderer::GetCamera()->Position().x += 0.1f;
|
||||
}
|
||||
}
|
||||
@ -1,49 +0,0 @@
|
||||
#include <Ground.hpp>
|
||||
|
||||
#include <IAEngine/Physics/Physics.hpp>
|
||||
|
||||
#include <IACore/File.hpp>
|
||||
|
||||
namespace ia::iae::game
|
||||
{
|
||||
extern ResourceManager* g_resourceManager;
|
||||
|
||||
Handle m_id2;
|
||||
|
||||
Ground::Ground(IN Engine *engine) : m_engine(engine)
|
||||
{
|
||||
m_spriteRenderer = AddComponent<SpriteRendererComponent>();
|
||||
}
|
||||
|
||||
VOID Ground::OnAdded(IN Scene *scene)
|
||||
{
|
||||
Node::OnAdded(scene);
|
||||
|
||||
iae::SpriteRendererComponent::AnimationKeyFrame keyFrame{};
|
||||
const auto d = File::ReadToVector("Graphics/red.png");
|
||||
keyFrame.Texture = g_resourceManager->CreateTexture(d.data(), d.size());
|
||||
keyFrame.Scale = {3.0f, 0.25f, 1.0f};
|
||||
|
||||
m_spriteRenderer->AddAnimation({.ShouldLoop = true, .Keys = {keyFrame}});
|
||||
m_spriteRenderer->BakeAnimations();
|
||||
|
||||
//m_id2 = Physics::CreateStaticBody({GetPosition().X + 300, GetPosition().Y + 25});
|
||||
//Physics::AddBoxCollider(m_id2, {600.0f, 50.0f});
|
||||
}
|
||||
|
||||
VOID Ground::OnRemoved()
|
||||
{
|
||||
|
||||
Node::OnRemoved();
|
||||
}
|
||||
|
||||
VOID Ground::Draw()
|
||||
{
|
||||
Node::Draw();
|
||||
}
|
||||
|
||||
VOID Ground::Update()
|
||||
{
|
||||
Node::Update();
|
||||
}
|
||||
} // namespace ia::iae::game
|
||||
@ -1,20 +1,18 @@
|
||||
#include <Game.hpp>
|
||||
|
||||
ia::iae::Engine g_engine;
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
g_engine.Initialize({.GameName = "IAE Sandbox", .WindowWidth = 800, .WindowHeight = 600});
|
||||
const auto game = new ia::iae::game::Game(&g_engine);
|
||||
ia::iae::Engine::Initialize({.GameName = "IAE Sandbox", .WindowWidth = 800, .WindowHeight = 600});
|
||||
const auto game = new ia::iae::game::Game();
|
||||
game->Initialize();
|
||||
while (!g_engine.ShouldClose())
|
||||
while (!ia::iae::Engine::ShouldClose())
|
||||
{
|
||||
g_engine.BeginFrame();
|
||||
ia::iae::Engine::BeginFrame();
|
||||
game->Update();
|
||||
g_engine.EndFrame();
|
||||
ia::iae::Engine::EndFrame();
|
||||
}
|
||||
game->Terminate();
|
||||
delete game;
|
||||
g_engine.Terminate();
|
||||
ia::iae::Engine::Terminate();
|
||||
return 0;
|
||||
}
|
||||
@ -1,30 +0,0 @@
|
||||
#include <Map.hpp>
|
||||
|
||||
namespace ia::iae::game
|
||||
{
|
||||
TiledMap::TiledMap(IN Engine *engine) : m_engine(engine)
|
||||
{
|
||||
//m_musicEmitter = AddComponent<SoundEmitterComponent>();
|
||||
//m_atlasRenderer = AddComponent<AtlasRendererComponent>();
|
||||
}
|
||||
|
||||
VOID TiledMap::OnAdded(IN Scene *scene)
|
||||
{
|
||||
Node::OnAdded(scene);
|
||||
}
|
||||
|
||||
VOID TiledMap::OnRemoved()
|
||||
{
|
||||
Node::OnRemoved();
|
||||
}
|
||||
|
||||
VOID TiledMap::Draw()
|
||||
{
|
||||
Node::Draw();
|
||||
}
|
||||
|
||||
VOID TiledMap::Update()
|
||||
{
|
||||
Node::Update();
|
||||
}
|
||||
} // namespace ia::iae::game
|
||||
@ -1,51 +0,0 @@
|
||||
#include <Player.hpp>
|
||||
|
||||
#include <IAEngine/Physics/Physics.hpp>
|
||||
#include <IAEngine/Input.hpp>
|
||||
|
||||
#include <IACore/File.hpp>
|
||||
|
||||
namespace ia::iae::game
|
||||
{
|
||||
extern ResourceManager* g_resourceManager;
|
||||
|
||||
Handle m_id;
|
||||
|
||||
Player::Player(IN Engine *engine) : m_engine(engine)
|
||||
{
|
||||
m_spriteRenderer = AddComponent<SpriteRendererComponent>();
|
||||
}
|
||||
|
||||
VOID Player::OnAdded(IN Scene *scene)
|
||||
{
|
||||
Node::OnAdded(scene);
|
||||
|
||||
iae::SpriteRendererComponent::AnimationKeyFrame keyFrame{};
|
||||
const auto d = File::ReadToVector("Graphics/green.png");
|
||||
keyFrame.Texture = g_resourceManager->CreateTexture(d.data(), d.size());
|
||||
keyFrame.Scale = {0.2f, 0.2f, 1.0f};
|
||||
|
||||
m_spriteRenderer->AddAnimation({.ShouldLoop = true, .Keys = {keyFrame}});
|
||||
m_spriteRenderer->BakeAnimations();
|
||||
|
||||
//m_id = Physics::CreateDynamicBody({GetPosition().X + 20, GetPosition().Y + 20});
|
||||
//Physics::AddBoxCollider(m_id, {40.0f, 40.0f});
|
||||
}
|
||||
|
||||
VOID Player::OnRemoved()
|
||||
{
|
||||
|
||||
Node::OnRemoved();
|
||||
}
|
||||
|
||||
VOID Player::Draw()
|
||||
{
|
||||
Node::Draw();
|
||||
}
|
||||
|
||||
VOID Player::Update()
|
||||
{
|
||||
Node::Update();
|
||||
SetLocalPosition(Physics::GetBodyPosition(m_id) - glm::vec3{20.0f, 20.0f, 0.0f});
|
||||
}
|
||||
} // namespace ia::iae::game
|
||||
Reference in New Issue
Block a user