Snapple
Memuat...
Mencari...
Tidak Ditemukan
components.hpp
Ke dokumentasi file ini.
1#pragma once
2
3#include "../prelude.hpp"
4#include <functional>
5#include <memory>
6#include <queue>
7#include <string>
8#include <vector>
9
10using std::queue, std::string, std::vector, std::unique_ptr, std::function;
11
12namespace GameComponents {
13
17
18// TODO: mungkin ga kepake
21class Sprite {
22public:
23 virtual void draw() = 0;
24 virtual void update() = 0;
25};
26
30private:
31 vector<unique_ptr<Sprite>> sprites;
32public:
34 void draw();
35 void update();
36 void delete_all();
37 void append(unique_ptr<Sprite> sprite);
38};
39
42class Scene {
43private:
44public:
45
48 const char* id;
49
50 virtual void draw() = 0;
51 virtual void update() = 0;
52
53};
54
63private:
64 Scene* current_scene;
65
66public:
67
68 void draw();
69 void update();
70
75 SceneManager(Scene* initial_scene);
76
82 void set_scene(Scene* initial_scene);
83
86 string current_id();
87};
88
91struct Event {
92 function<void()> callback;
93};
94
101private:
102 queue<Event> events;
103
104public:
105 EventManager();
106
110 void update();
111
114 void dispatch(Event event);
115};
116
119struct TimerItem {
120public:
121 double expire;
122 function<void()> callback;
123};
124
127class Timer {
128private:
129 double(*time_function)();
130
131public:
132 vector<TimerItem> timers;
133 Timer(double(*time_function)() = GetTime);
134
137 void attach(double duration, function<void()> callback);
138
141 void update();
142};
143
147public:
148 GameStateManager(Scene* init_scene);
152
153 void update();
154 void draw();
155};
156
157
161 int row;
162 int col;
163
164 Coordinate operator +(const Coordinate& other) const;
165 // Tambahkan baris ke koordinat ini. Method ini mengembalikan sebuah
166 // `Coordinate` lain sehingga dapat digunakan untuk chaining.
167 Coordinate add_row(int r);
168
169 // Tambahkan kolom ke koordinat ini. Method ini mengembalikan sebuah
170 // `Coordinate` lain sehingga dapat digunakan untuk chaining.
171 Coordinate add_col(int c);
172 raylib::Vector2 to_vector2() const;
173};
174
175}
Definition components.hpp:100
void dispatch(Event event)
Definition components.cpp:39
void update()
Definition components.cpp:32
EventManager()
Definition components.cpp:28
GameStateManager(Scene *init_scene)
Definition components.cpp:92
SceneManager scene_manager
Definition components.hpp:151
EventManager event_manager
Definition components.hpp:149
void draw()
Definition components.cpp:103
Timer timer
Definition components.hpp:150
void update()
Definition components.cpp:95
Definition components.hpp:62
string current_id()
Definition components.cpp:24
void set_scene(Scene *initial_scene)
Definition components.cpp:20
void update()
Definition components.cpp:16
SceneManager(Scene *initial_scene)
Definition components.cpp:8
void draw()
Definition components.cpp:12
Definition components.hpp:42
virtual void update()=0
virtual void draw()=0
const char * id
Definition components.hpp:48
void update()
Definition components.cpp:53
void draw()
Definition components.cpp:47
SpriteManager()
Definition components.cpp:43
void delete_all()
Definition components.cpp:59
void append(unique_ptr< Sprite > sprite)
Definition components.cpp:63
Definition components.hpp:21
virtual void draw()=0
virtual void update()=0
Definition components.hpp:127
Timer(double(*time_function)()=GetTime)
Definition components.cpp:67
void attach(double duration, function< void()> callback)
Definition components.cpp:71
void update()
Definition components.cpp:75
vector< TimerItem > timers
Definition components.hpp:132
Definition components.hpp:12
Definition components.hpp:160
raylib::Vector2 to_vector2() const
Definition components.cpp:119
int row
Definition components.hpp:161
Coordinate add_row(int r)
Definition components.cpp:111
int col
Definition components.hpp:162
Coordinate add_col(int c)
Definition components.cpp:115
Coordinate operator+(const Coordinate &other) const
Definition components.cpp:107
Definition components.hpp:91
function< void()> callback
Definition components.hpp:92
Definition components.hpp:119
function< void()> callback
Definition components.hpp:122
double expire
Definition components.hpp:121