添加模式选择开始菜单并修复中文界面乱码
This commit is contained in:
+33
-13
@@ -17,27 +17,46 @@ constexpr int SIDE_PANEL_GAP = 28;
|
||||
constexpr int WINDOW_CLIENT_WIDTH = WINDOW_PADDING * 2 + nGameWidth * GRID + SIDE_PANEL_GAP + SIDE_PANEL_WIDTH;
|
||||
constexpr int WINDOW_CLIENT_HEIGHT = WINDOW_PADDING * 2 + nGameHeight * GRID + 20;
|
||||
|
||||
// 定义一个点,用来表示方块的位置
|
||||
struct Point
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
|
||||
extern int nType; // 下一方块类型
|
||||
extern int type; // 当前方块类型
|
||||
extern int state; // 当前方块状态
|
||||
extern int tScore; // 当前得分
|
||||
extern bool gameOverFlag; // 游戏已经结束
|
||||
extern bool suspendFlag; // 暂停游戏
|
||||
extern bool targetFlag; // 启用瞄准器
|
||||
extern int workRegion[20][10]; // 工作区数据,0 表示该位置没有被占用
|
||||
extern Point point; // 当前方块的当前位置
|
||||
extern Point target; // 当前方块目标位置,用于瞄准器
|
||||
struct MenuState
|
||||
{
|
||||
int selectedIndex;
|
||||
int optionCount;
|
||||
};
|
||||
|
||||
enum ScreenState
|
||||
{
|
||||
SCREEN_MENU = 0,
|
||||
SCREEN_PLAYING = 1
|
||||
};
|
||||
|
||||
enum GameMode
|
||||
{
|
||||
MODE_CLASSIC = 0,
|
||||
MODE_ROGUE = 1
|
||||
};
|
||||
|
||||
extern int nType;
|
||||
extern int type;
|
||||
extern int state;
|
||||
extern int tScore;
|
||||
extern bool gameOverFlag;
|
||||
extern bool suspendFlag;
|
||||
extern bool targetFlag;
|
||||
extern int workRegion[20][10];
|
||||
extern Point point;
|
||||
extern Point target;
|
||||
extern MenuState menuState;
|
||||
extern int currentScreen;
|
||||
extern int currentMode;
|
||||
extern int bricks[7][4][4][4];
|
||||
extern COLORREF BrickColor[7];
|
||||
|
||||
// 游戏逻辑相关函数
|
||||
bool CanMoveDown();
|
||||
bool CanMoveLeft();
|
||||
bool CanMoveRight();
|
||||
@@ -51,6 +70,7 @@ void DeleteOneLine(int number);
|
||||
void DeleteLines();
|
||||
void ComputeTarget();
|
||||
void Restart();
|
||||
void StartGameWithMode(int mode);
|
||||
void ReturnToMainMenu();
|
||||
|
||||
// 绘图函数
|
||||
void TDrawScreen(HDC hdc, HWND hWnd);
|
||||
|
||||
Reference in New Issue
Block a user