Separated interfaces
This commit is contained in:
parent
7fe086a477
commit
9b1acbbe28
3 changed files with 58 additions and 6 deletions
|
|
@ -4,13 +4,26 @@
|
|||
#include <raylib.h>
|
||||
#include <raymath.h>
|
||||
|
||||
class IComponent {
|
||||
class IProcessable {
|
||||
public:
|
||||
virtual ~IComponent() {}
|
||||
virtual ~IProcessable() {}
|
||||
// Called every frame
|
||||
virtual void process() = 0;
|
||||
};
|
||||
class IReadible {
|
||||
public:
|
||||
virtual ~IReadible() {}
|
||||
// Called when the level is set up
|
||||
virtual void ready() = 0;
|
||||
};
|
||||
|
||||
class Pacman : IComponent {
|
||||
class IDrawable {
|
||||
public:
|
||||
virtual ~IDrawable() {}
|
||||
virtual void draw() = 0;
|
||||
};
|
||||
|
||||
class Pacman : public IProcessable, public IDrawable {
|
||||
const int speed = 64;
|
||||
private:
|
||||
Texture2D texture;
|
||||
|
|
@ -23,6 +36,17 @@ class Pacman : IComponent {
|
|||
Pacman(Vector2 position);
|
||||
~Pacman();
|
||||
virtual void process();
|
||||
virtual void draw();
|
||||
};
|
||||
|
||||
class Wall : public IReadible, public IDrawable {
|
||||
private:
|
||||
Texture2D texture;
|
||||
public:
|
||||
Wall();
|
||||
~Wall();
|
||||
virtual void ready();
|
||||
virtual void draw();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue