CCIMXDesktop
 
Loading...
Searching...
No Matches
DinasourGameMainWidget.h
1#ifndef DINASOURGAMEMAINWIDGET_H
2#define DINASOURGAMEMAINWIDGET_H
3
4#include "core/DifficultyType.h"
5#include "core/ObstacleType.h"
6#include <QWidget>
7
8// Forward declarations
10class ScoreManager;
11class FlushRequester;
14class Dinasour;
15class EventManager;
17class SceneDrawer;
18
23class DinasourGameMainWidget : public QWidget {
24 Q_OBJECT
25public:
31 int score;
32 Difficulty t;
33 };
34
39 explicit DinasourGameMainWidget(QWidget* parent = nullptr);
40
45 bool is_game_started() { return game_start; };
46
51 bool is_game_over() { return game_over; }
52
56 void launch_game();
57
61 void process_jump();
62
66 void process_lay();
67
72 CurrentInfoPack infoPack() const;
73
78 Dinasour* get_dinasour_instance() const { return dinasour; }
79
80signals:
85
90
91public slots:
96 void gain_score(ObstacleType type);
97
101 void pause();
102
106 void resume();
107
111 void process_die();
112
116 void clearAndReset();
117
121 inline void animate_lay() { process_lay(); }
122
126 void animate_up();
127
128protected:
134 void paintEvent(QPaintEvent* event) override;
140 void keyPressEvent(QKeyEvent* event) override;
146 void keyReleaseEvent(QKeyEvent* event) override;
152 void mousePressEvent(QMouseEvent* event) override;
153
154private:
155 FlushRequester* scene_flush_once;
156 Dinasour* dinasour;
157 ObstacleListManager* obstacleManager;
158 SoundEffectPlayer* soundEffectPlayer;
159 std::shared_ptr<EventManager> eventManager;
160 ScoreManager* scoreManager;
161 DifficultyManager* difficulty_manager;
162 SceneDrawer* sceneDrawer;
163 bool game_over { false };
164 bool game_start { false };
165
169 void init_memory();
170
174 void init_connection();
175
179 void update_game();
180};
181
182#endif // DINASOURGAMEMAINWIDGET_H
Manages game difficulty levels and their transitions.
Definition DifficultyManager.h:15
Provides frame data for the dinosaur character based on its state.
Definition FigureFrameFetcher.h:15
Main game widget that manages the dinosaur game.
Definition DinasourGameMainWidget.h:23
Dinasour * get_dinasour_instance() const
Gets dinosaur instance.
Definition DinasourGameMainWidget.h:78
void resume()
Resumes the game.
Definition DinasourGameMainWidget.cpp:83
void animate_up()
Triggers jump animation.
Definition DinasourGameMainWidget.cpp:220
bool is_game_started()
Checks if game has started.
Definition DinasourGameMainWidget.h:45
void launch_game()
Starts the game.
Definition DinasourGameMainWidget.cpp:24
void process_lay()
Processes lay (duck) action.
Definition DinasourGameMainWidget.cpp:41
bool is_game_over()
Checks if game is over.
Definition DinasourGameMainWidget.h:51
void clearAndReset()
Resets game to initial state.
Definition DinasourGameMainWidget.cpp:210
void game_started()
Emitted when game starts.
void animate_lay()
Triggers lay animation.
Definition DinasourGameMainWidget.h:121
void process_jump()
Processes jump action.
Definition DinasourGameMainWidget.cpp:36
void process_die()
Processes death event.
Definition DinasourGameMainWidget.cpp:199
void paintEvent(QPaintEvent *event) override
paint issue
Definition DinasourGameMainWidget.cpp:89
void mousePressEvent(QMouseEvent *event) override
mouse press issue
Definition DinasourGameMainWidget.cpp:139
void game_overed()
Emitted when game ends.
void gain_score(ObstacleType type)
Increases score based on obstacle type.
Definition DinasourGameMainWidget.cpp:49
void keyPressEvent(QKeyEvent *event) override
keypress issue
Definition DinasourGameMainWidget.cpp:107
CurrentInfoPack infoPack() const
Gets current game information.
Definition DinasourGameMainWidget.cpp:45
void pause()
Pauses the game.
Definition DinasourGameMainWidget.cpp:77
void keyReleaseEvent(QKeyEvent *event) override
key release issue
Definition DinasourGameMainWidget.cpp:125
Handles and processes user input events for the game.
Definition EventManager.h:16
Provides timed flush requests using QTimer.
Definition FlushRequester.h:11
Manages the creation, rendering, and collision detection of obstacles.
Definition ObstacleListManager.h:17
Handles all rendering operations for the game scene.
Definition SceneDrawer.h:22
Definition ScoreManager.h:10
Handles playback of sound effects.
Definition SoundEffectPlayer.h:13
Configuration constants related to the dinosaur figure.
Contains current game state information.
Definition DinasourGameMainWidget.h:30
int score
Current game score.
Definition DinasourGameMainWidget.h:31
Difficulty t
Current difficulty level.
Definition DinasourGameMainWidget.h:32