22 #ifndef QDENGINE_MINIGAMES_TETRIS_H 23 #define QDENGINE_MINIGAMES_TETRIS_H 25 #include "common/debug.h" 27 #include "qdengine/qd_fwd.h" 28 #include "qdengine/qdcore/qd_minigame_interface.h" 35 _flyingObjs = _hiddenObjs =
nullptr;
43 debugC(1, kDebugMinigames,
"Tetris::init()");
45 _engine = engine_interface;
46 _scene = engine_interface->current_scene_interface();
56 for (
int i = 0; i < 5; i++) {
58 _flyingObjs[i] = _scene->
object_interface(_scene->minigame_parameter(name.c_str()));
68 for (
int i = 0; i < 5; i++) {
70 _hiddenObjs[i] = _scene->
object_interface(_scene->minigame_parameter(name.c_str()));
74 _lastRowObj = _scene->
object_interface(_scene->minigame_parameter(
"last_row"));
80 debugC(3, kDebugMinigames,
"Tetris::quant(%f)", dt);
82 for (
int i = 0; i < 5; i++ ) {
83 if (_flyingObjs[i]->is_state_active(
"\xeb\xe5\xf2\xe8\xf2")
84 && _hiddenObjs[i]->is_state_active(
"\xed\xe5\xf2")) {
89 int activeColumn = getActiveColumn();
90 if (activeColumn < 12)
92 if (pos.y > 535 - 10 * activeColumn)
95 if (pos.y > 535 - 10 * getActiveColumn())
105 debugC(1, kDebugMinigames,
"Tetris::finit()");
108 _engine->release_scene_interface(_scene);
127 enum { INTERFACE_VERSION = 99 };
128 int version()
const {
129 return INTERFACE_VERSION;
133 int getActiveColumn() {
200 #endif // QDENGINE_MINIGAMES_TETRIS_H int load_game(const qdEngineInterface *engine_interface, const qdMinigameSceneInterface *scene_interface, const char *buffer, int buffer_size)
Загрузка данных, вызывается при загрузке сцены, на которую повешена миниигра.
Definition: tetris.h:123
static String format(MSVC_PRINTF const char *fmt,...) GCC_PRINTF(1
bool quant(float dt)
Обсчёт логики игры, параметр - время, которое должно пройти в игре (в секундах).
Definition: tetris.h:79
virtual mgVect2i screen_R() const =0
Возвращает координаты объекта в экранной системе координат.
Definition: qd_minigame_interface.h:78
bool init(const qdEngineInterface *engine_interface)
Инициализация игры.
Definition: tetris.h:42
Definition: qd_minigame_interface.h:365
virtual bool is_state_active(const char *state_name) const =0
Возвращает true, если состояние с именем state_name включено в данный момент.
Базовый класс для игровых ресурсов.
Definition: console.h:28
Интерфейс к динамическому объекту.
Definition: qd_minigame_interface.h:230
Интерфейс к сцене.
Definition: qd_minigame_interface.h:315
virtual bool set_state(const char *state_name)=0
Включает состояние с именем state_name.
virtual qdMinigameObjectInterface * object_interface(const char *object_name)=0
Создаёт интерфейс к объекту с именем object_name.
bool new_game(const qdEngineInterface *engine_interface)
Инициализация миниигры, вызывается при старте и перезапуске игры.
Definition: tetris.h:115
bool finit()
Деинициализация игры.
Definition: tetris.h:104
void void void void void debugC(int level, uint32 debugChannels, MSVC_PRINTF const char *s,...) GCC_PRINTF(3
int save_game(const qdEngineInterface *engine_interface, const qdMinigameSceneInterface *scene_interface, char *buffer, int buffer_size)
Сохранение данных, вызывается при сохранении сцены, на которую повешена миниигра. ...
Definition: tetris.h:119