Support of IsKeyPressed that only trigger for the frame it is pressed on.
This commit is contained in:
+18
-1
@@ -5,13 +5,16 @@
|
||||
|
||||
#include <game.h>
|
||||
|
||||
#include <Core/Common/EnumUtils.h>
|
||||
#include <Core/HAL/Filesystem/Filesystem.h>
|
||||
#include <Core/HAL/Keyboard/Keyboard.h>
|
||||
#include <Core/JulietInit.h>
|
||||
#include <Core/Logging/LogManager.h>
|
||||
#include <Core/Memory/MemoryArena.h>
|
||||
#include <Entity/Entity.h>
|
||||
#include <Entity/EntityManager.h>
|
||||
#include <Graphics/Camera.h>
|
||||
#include <imgui.h>
|
||||
|
||||
GameState* gGameState = nullptr;
|
||||
GameState* GetGameState()
|
||||
@@ -92,5 +95,19 @@ extern "C" JULIET_API void __cdecl GameUpdate(Juliet::GameData* params, [[maybe_
|
||||
printf("Rock has %d health points\n", rock->Health);
|
||||
}
|
||||
|
||||
// printf("Updating game...\n");
|
||||
if (IsKeyPressed(ScanCode::F1))
|
||||
{
|
||||
gGameState->Mode = static_cast<GameMode>((ToUnderlying(gGameState->Mode) + 1) % 2);
|
||||
}
|
||||
|
||||
if (gGameState->Mode == GameMode::Play)
|
||||
{
|
||||
// update game
|
||||
}
|
||||
|
||||
if (gGameState->Mode == GameMode::Debug)
|
||||
{
|
||||
ImGui::Begin("Debug");
|
||||
ImGui::End();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,12 +10,20 @@ struct World
|
||||
EntityManager* EntityManager;
|
||||
};
|
||||
|
||||
enum class GameMode
|
||||
{
|
||||
Play,
|
||||
Debug
|
||||
};
|
||||
|
||||
struct GameState
|
||||
{
|
||||
Juliet::Arena* TotalArena;
|
||||
|
||||
World* World;
|
||||
|
||||
GameMode Mode = GameMode::Play;
|
||||
|
||||
float TotalTime;
|
||||
int Score;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user