Changeset View
Changeset View
Standalone View
Standalone View
gamewidget.h
Show All 34 Lines | |||||
35 | 35 | | |||
36 | class KBounceGameWidget : public QGraphicsView | 36 | class KBounceGameWidget : public QGraphicsView | ||
37 | { | 37 | { | ||
38 | Q_OBJECT | 38 | Q_OBJECT | ||
39 | 39 | | |||
40 | public: | 40 | public: | ||
41 | enum State { BeforeFirstGame, Running, BetweenLevels, Paused, Suspended, GameOver }; | 41 | enum State { BeforeFirstGame, Running, BetweenLevels, Paused, Suspended, GameOver }; | ||
42 | 42 | | |||
43 | /** | ||||
44 | * Constructor to set game widget configurations | ||||
45 | * @see gamewidget.cpp | ||||
46 | */ | ||||
43 | explicit KBounceGameWidget( QWidget* parent = 0 ); | 47 | explicit KBounceGameWidget(QWidget* parent = 0); | ||
48 | | ||||
49 | /** | ||||
50 | * KBounceGameWidget destructor | ||||
51 | * @see gamewidget.cpp | ||||
52 | */ | ||||
44 | ~KBounceGameWidget(); | 53 | ~KBounceGameWidget(); | ||
45 | 54 | | |||
46 | int level(); | 55 | /** | ||
47 | int score(); | 56 | * Get current game level | ||
48 | KBounceGameWidget::State state() const { return m_state; } | 57 | * @return current game level | ||
49 | KBounceRenderer* renderer() { return &m_renderer; } | 58 | * @see gamewidget.cpp | ||
59 | */ | ||||
60 | int getLevel(); | ||||
50 | 61 | | |||
62 | /** | ||||
63 | * Get current game score | ||||
64 | * @return current game score | ||||
65 | * @see gamewidget.cpp | ||||
66 | */ | ||||
67 | int getScore(); | ||||
68 | | ||||
69 | /** | ||||
70 | * Get current game state | ||||
71 | * @return current game state | ||||
72 | * @see gamewidget.cpp | ||||
73 | */ | ||||
74 | KBounceGameWidget::State state() const { return kBounceGameWidget_state; } | ||||
75 | | ||||
76 | /** | ||||
77 | * Get current game renderer | ||||
78 | * @return current game renderer | ||||
79 | * @see gamewidget.cpp | ||||
80 | */ | ||||
81 | KBounceRenderer* renderer() { return &kBounceGameWidget_renderer; } | ||||
82 | | ||||
83 | /** | ||||
84 | * ? | ||||
85 | * @see gamewidget.cpp | ||||
86 | */ | ||||
51 | QSize minimumSizeHint() const Q_DECL_OVERRIDE; | 87 | QSize minimumSizeHint() const Q_DECL_OVERRIDE; | ||
52 | 88 | | |||
53 | public slots: | 89 | public slots: | ||
90 | /** | ||||
91 | * Set variables to close the game | ||||
92 | * @see gamewidget.cpp | ||||
93 | */ | ||||
54 | void closeGame(); | 94 | void closeGame(); | ||
95 | | ||||
96 | /** | ||||
97 | * Start a new game | ||||
98 | * @see gamewidget.cpp | ||||
99 | */ | ||||
55 | void newGame(); | 100 | void newGame(); | ||
101 | | ||||
102 | /** | ||||
103 | * Set state to pause the game | ||||
104 | * @param flag pause flag | ||||
105 | * @see gamewidget.cpp | ||||
106 | */ | ||||
56 | void setPaused( bool ); | 107 | void setPaused(bool); | ||
108 | | ||||
109 | /** | ||||
110 | * Event to apply background settings | ||||
111 | * @see gamewidget.cpp | ||||
112 | */ | ||||
57 | void settingsChanged(); | 113 | void settingsChanged(); | ||
114 | | ||||
115 | /** | ||||
116 | * Set state to suspend the game | ||||
117 | * @param flag suspend flag | ||||
118 | * @see gamewidget.cpp | ||||
119 | */ | ||||
58 | void setSuspended( bool ); | 120 | void setSuspended(bool); | ||
59 | void levelChanged(); | 121 | void levelChanged(); | ||
60 | 122 | | |||
61 | signals: | 123 | signals: | ||
62 | void gameOver(); | 124 | void gameOver(); | ||
125 | | ||||
126 | /** | ||||
127 | * Event to apply level changes | ||||
128 | * @see gamewidget.cpp | ||||
129 | */ | ||||
63 | void levelChanged( int level ); | 130 | void levelChanged(int level); | ||
64 | void scoreChanged( int score ); | 131 | void scoreChanged(int score); | ||
65 | void filledChanged( int filled ); | 132 | void filledChanged(int filled); | ||
66 | void livesChanged( int lives ); | 133 | void livesChanged(int lives); | ||
67 | void timeChanged( int time ); | 134 | void timeChanged(int time); | ||
68 | void stateChanged( KBounceGameWidget::State state ); | 135 | void stateChanged(KBounceGameWidget::State state); | ||
69 | 136 | | |||
70 | protected slots: | 137 | protected slots: | ||
138 | | ||||
139 | /** | ||||
140 | * Event to apply onFill changes | ||||
141 | * @param fill current game filled percentage | ||||
142 | * @see gamewidget.cpp | ||||
143 | */ | ||||
71 | void onFillChanged( int filled ); | 144 | void onFillChanged(int filled); | ||
145 | | ||||
146 | /** | ||||
147 | * Event to apply live changes | ||||
148 | * @param lives current game lives | ||||
149 | * @see gamewidget.cpp | ||||
150 | */ | ||||
72 | void onLivesChanged( int lives ); | 151 | void onLivesChanged(int lives); | ||
152 | | ||||
153 | /** | ||||
154 | * Event to apply "die on wall" rule | ||||
155 | * @see gamewidget.cpp | ||||
156 | */ | ||||
73 | void onWallDied(); | 157 | void onWallDied(); | ||
158 | | ||||
159 | /** | ||||
160 | * Event to apply tick changes | ||||
161 | * @see gamewidget.cpp | ||||
162 | */ | ||||
74 | void tick(); | 163 | void tick(); | ||
75 | 164 | | |||
76 | protected: | 165 | protected: | ||
166 | | ||||
167 | /** | ||||
168 | * XmlGui "resize" event | ||||
169 | * @param *ev Event context | ||||
170 | * @see gamewidget.cpp | ||||
171 | */ | ||||
77 | void resizeEvent( QResizeEvent* event ) Q_DECL_OVERRIDE; | 172 | void resizeEvent(QResizeEvent* event) Q_DECL_OVERRIDE; | ||
173 | | ||||
174 | /** | ||||
175 | * XmlGui "mouse release" event | ||||
176 | * @param *ev Event context | ||||
177 | * @see gamewidget.cpp | ||||
178 | */ | ||||
78 | void mouseReleaseEvent( QMouseEvent* event ) Q_DECL_OVERRIDE; | 179 | void mouseReleaseEvent(QMouseEvent* event) Q_DECL_OVERRIDE; | ||
180 | | ||||
181 | /** | ||||
182 | * XmlGui "focus out" event | ||||
183 | * @param *ev Event context | ||||
184 | * @see gamewidget.cpp | ||||
185 | */ | ||||
79 | void focusOutEvent(QFocusEvent *event) Q_DECL_OVERRIDE; | 186 | void focusOutEvent(QFocusEvent *event) Q_DECL_OVERRIDE; | ||
187 | | ||||
188 | /** | ||||
189 | * Set variables to close the level | ||||
190 | * @see gamewidget.cpp | ||||
191 | */ | ||||
80 | void closeLevel(); | 192 | void closeLevel(); | ||
193 | | ||||
194 | /** | ||||
195 | * Start a new level | ||||
196 | * @see gamewidget.cpp | ||||
197 | */ | ||||
81 | void newLevel(); | 198 | void newLevel(); | ||
82 | void updateCursor(); | 199 | | ||
83 | void redraw(); | 200 | /** | ||
201 | * Update game difficulty and apply their respective rules | ||||
202 | * @param difficulty new difficulty | ||||
203 | * @see gamewidget.cpp | ||||
204 | */ | ||||
84 | void setGameDifficulty(const KgDifficultyLevel *); | 205 | void setGameDifficulty(const KgDifficultyLevel *); | ||
85 | 206 | | |||
86 | KBounceRenderer m_renderer; | 207 | /** | ||
208 | * Update cursor image | ||||
209 | * @see gamewidget.cpp | ||||
210 | */ | ||||
211 | void updateCursor(); | ||||
87 | 212 | | |||
88 | QTimer* m_clock; | 213 | /** | ||
89 | KBounceBoard* m_board; | 214 | * Set variables to redraw the game board | ||
90 | State m_state; | 215 | * @see gamewidget.cpp | ||
91 | int m_bonus; | 216 | */ | ||
92 | int m_level; | 217 | void redraw(); | ||
93 | int m_score; | | |||
94 | int m_lives; | | |||
95 | int m_time; | | |||
96 | 218 | | |||
97 | QGraphicsPixmapItem* m_overlay; | 219 | /** | ||
220 | * Generate overlay message box | ||||
221 | * @see gamewidget.cpp | ||||
222 | */ | ||||
98 | void generateOverlay(); | 223 | void generateOverlay(); | ||
99 | 224 | | |||
100 | bool m_vertical; | 225 | KBounceRenderer kBounceGameWidget_renderer; | ||
101 | QGraphicsScene m_scene; | 226 | KBounceBoard* kBounceGameWidget_board; | ||
102 | KgSound m_soundTimeout; | 227 | KgSound kBounceGameWidget_soundTimeout; | ||
228 | | ||||
229 | QGraphicsPixmapItem* kBounceGameWidget_overlay; | ||||
230 | QGraphicsScene kBounceGameWidget_scene; | ||||
231 | QTimer* kBounceGameWidget_clock; | ||||
232 | State kBounceGameWidget_state; | ||||
233 | | ||||
234 | int kBounceGameWidget_bonus; | ||||
235 | int kBounceGameWidget_level; | ||||
236 | int kBounceGameWidget_score; | ||||
237 | int kBounceGameWidget_lives; | ||||
238 | int kBounceGameWidget_time; | ||||
239 | bool kBounceGameWidget_vertical; | ||||
103 | }; | 240 | }; | ||
104 | 241 | | |||
105 | #endif | 242 | #endif |