Add systems

master
John Montagu, the 4th Earl of Sandvich 2026-03-15 18:55:37 -07:00
parent ba42c54560
commit d3b871f214
Signed by: sandvich
GPG Key ID: 9A39BE37E602B22D
4 changed files with 27 additions and 8 deletions

View File

@ -1,6 +1,8 @@
#pragma once #pragma once
#include "raylib-cpp.hpp"
// placeholder for draw helpers // placeholder for draw helpers
void DrawSceneOutline() { void DrawSceneOutline() {
DrawRectangleLines(0, 0, GetScreenWidth(), GetScreenHeight(), raylib::Color::DarkGray());
} }

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include <concepts>
#include <functional>
#include <memory> #include <memory>
#include <optional> #include <optional>
#include <vector> #include <vector>

View File

@ -1,8 +1,14 @@
#pragma once #pragma once
#include <vector>
#include "Entity.hpp" #include "Entity.hpp"
#include <memory>
#include <vector>
void UpdateAllSystems(std::vector<Entity> &entities, float deltaTime) { void UpdateAllSystems(std::vector<std::shared_ptr<Entity>> &entities, float deltaTime) {
for (auto &entity : entities) {
if (!entity) {
continue;
}
entity->Update(deltaTime);
}
} }

View File

@ -8,20 +8,29 @@
int main() { int main() {
raylib::Window window(700, 460, "Gravity Surfing"); raylib::Window window(700, 460, "Gravity Surfing");
window.SetState(FLAG_WINDOW_RESIZABLE);
window.SetTargetFPS(60); window.SetTargetFPS(60);
std::vector<Entity> entities; std::vector<std::shared_ptr<Entity>> entities;
entities.reserve(20); entities.reserve(20);
auto &world = entities.emplace_back(); entities.push_back(CreateWorld());
world.AddComponent<ScrollComponent>(); entities.push_back(CreateGravityWell());
entities.push_back(CreateProbe());
entities.push_back(CreateHUD());
while (!window.ShouldClose()) { while (!window.ShouldClose()) {
float dt = window.GetFrameTime(); float dt = window.GetFrameTime();
UpdateAllSystems(entities, dt); UpdateAllSystems(entities, dt);
window.BeginDrawing(); window.BeginDrawing();
window.ClearBackground(raylib::Color::Black()); window.ClearBackground(raylib::Color(11, 15, 26, 255));
DrawSceneOutline(); DrawSceneOutline();
raylib::DrawText("Gravity Surfing", 14, 12, 20, raylib::Color::RayWhite());
window.EndDrawing(); window.EndDrawing();
} }