From 3701c4555dc553397a7cf44950d9028e471a29e6 Mon Sep 17 00:00:00 2001 From: Rendo Date: Tue, 10 Mar 2026 23:14:09 +0500 Subject: [PATCH] World definitions --- src/components.h | 6 ++++-- src/world.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/world.h diff --git a/src/components.h b/src/components.h index 7f8c418..141e8f0 100644 --- a/src/components.h +++ b/src/components.h @@ -4,6 +4,8 @@ #include #include +class Entity{}; + class IProcessable { public: virtual ~IProcessable() {} @@ -23,7 +25,7 @@ class IDrawable { virtual void draw() = 0; }; -class Pacman : public IProcessable, public IDrawable { +class Pacman : public Entity, public IProcessable, public IDrawable { const int speed = 64; private: Texture2D texture; @@ -39,7 +41,7 @@ class Pacman : public IProcessable, public IDrawable { virtual void draw(); }; -class Wall : public IReadible, public IDrawable { +class Wall :public Entity,public IReadible, public IDrawable { private: Texture2D texture; public: diff --git a/src/world.h b/src/world.h new file mode 100644 index 0000000..056d890 --- /dev/null +++ b/src/world.h @@ -0,0 +1,30 @@ +#ifndef WORLD_H +#define WORLD_H + +#include "components.h" + +/// Class that holds information about game world +class World { + public: + const int GRID_SIZE = 20*20; + World(); + ~World(); + Entity* entities; /// Main subjects of game world. + + void setup(); /// Sets up game world. + /// Should be called once when entites are set. + + void process(); /// Should be called every frame. Calls + /// process() on every processable + + void draw(); /// Should be called at the end of frame. + /// Calls draw() on every drawable + + private: + IProcessable* processables; + IDrawable* drawables; +}; + +static World world; /// World singleton + +#endif