tot mes ben estructuraet i ara amb gestió d'events, context i subsystems. arreglos en el main loop

This commit is contained in:
JailDesigner committed 2026-11-06 13:58:59 +01:00
1 parent 1837844b03
commit 4e0b819b96
12 files changed
+94 -49

No files matched your search

+1 -1
View File
@@ -8,6 +8,6 @@ class Scene {
public:
virtual ~Scene() = default;
virtual auto update(int delta_ms) -> Scenes = 0;
virtual void update(int delta_ms) = 0;
virtual void render() = 0;
};
+1 -3
View File
@@ -6,7 +6,5 @@ enum class Scenes {
INTRO,
LOGO,
GAME,
TEST,
ACTION_CONTINUE,
ACTION_QUIT
TEST
};
+8 -8
View File
@@ -5,18 +5,18 @@
#include <iostream>
#include "core/rendering/video.hpp"
#include "game/gamecontext.hpp"
#include "game/context.hpp"
#include "game/subsystems.hpp"
Test::Test(GameContext& context)
: context_(context) {}
Test::Test(Subsystems& subsystems, Context& context)
: subsystems_(subsystems),
context_(context) {}
auto Test::update(int delta_ms) -> Scenes {
void Test::update(int delta_ms) {
time_elapsed_ += delta_ms;
if (time_elapsed_ >= 5000) { return Scenes::ACTION_QUIT; }
return Scenes::ACTION_CONTINUE;
}
void Test::render() {
context_.video->clean(time_elapsed_ / 10);
context_.video->present();
subsystems_.video->clean(time_elapsed_ / 10);
subsystems_.video->present();
}
+6 -4
View File
@@ -6,16 +6,18 @@
#include "scene.hpp"
struct GameContext;
struct Subsystems;
struct Context;
class Test final : public Scene {
public:
explicit Test(GameContext& context);
auto update(int delta_ms) -> Scenes override;
explicit Test(Subsystems& subsystems, Context& context);
void update(int delta_ms) override;
void render() override;
private:
GameContext& context_;
Subsystems& subsystems_;
Context& context_;
int color_{0};
Uint64 time_elapsed_{0};
};