forked from lfeng1420/BrickGame
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAddBrickGame.h
96 lines (74 loc) · 1.68 KB
/
AddBrickGame.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#pragma once
#include "GameBase.h"
class CAddBrickGame : public CGameBase
{
public:
// Start
virtual void Start();
// Update
// param: dt, millisecond
virtual void Update(float dt);
// Get game id
virtual EnGameID GetGameID();
// Button event
virtual void OnButtonEvent(const SEventContextButton* pButtonEvent);
private:
// Init bricks
void __InitBricks();
// Update bricks
void __UpdateBricks(float dt, bool& bUpdateFlag);
// Update bullets
void __UpdateBullets(float dt, bool& bUpdateFlag);
// Self move
void __SelfMove(float dt, bool& bUpdateFlag);
// Self fire
void __SelfFire(float dt, bool& bUpdateFlag);
// Draw self
void __DrawSelf(int nNewColIdx);
// Delete row
void __DeleteRow(int nRowIdx);
// Update game stage
bool __CheckGameOver();
//////////////////////////////////////////////////////////////////////////
//
int __GetBricksMoveInterval();
//
int __GetBulletMoveInterval();
private:
enum
{
BRICKS_MOVE_INTERVAL = 2500,
CONTROL_MOVE_INTERVAL = 115,
CONTROL_FIRE_INTERVAL = 100,
BULLET_MOVE_INTERVAL = 70,
SELF_ROW_INDEX = (ROW_COUNT - 2),
DELETE_ROW_ADD_SCORE = 10,
PASS_HIT_BRICK_COUNT = 200,
};
typedef list<POSITION> TList_BulletPos;
struct _TBulletData
{
TList_BulletPos lsPos;
int nMoveInterval;
};
struct _TSelfData
{
int nFireInterval;
int nMoveInterval;
int nColIdx;
int nHitBrickCount;
int nDir;
bool bFireFlag;
};
struct _TBricksData
{
int nMoveInterval;
};
private:
// Bullet data
_TBulletData m_stBulletData;
// Self data
_TSelfData m_stSelfData;
// Bricks data
_TBricksData m_stBricksData;
};