📄 terris.h
字号:
//常量定义
//菜单常量
# define IDM_START 100 //开始
# define IDM_PAUSE 101 //暂停
# define IDM_EXIT 102 //退出
# define IDM_EASY 200 //容易
# define IDM_MEDIUM 201 //普通
# define IDM_DIFFICULT 202 //困难
# define IDM_ABOUT 300 //关于
#define IDC_EMAIL 2000 //Email
#define IDC_HOMEPAGE 2001 //主页
#define IDC_STATIC -1
//数据常量
# define BLOCKSIZE 15 //方块大小
# define ROWS 24 //行
# define COLS 10 //列
# define OriginXPos 8 //初始X坐标
# define OriginYPos 30 //初始Y坐标
# define TIMERID 1 //时间间隔编号
# define EasyInterval 300 //容易难度间隔时间
# define MediumInterval 200 //普通难度间隔时间
# define DifficultInterval 100 //困难难度间隔时间
//保存方块信息的结构体
typedef struct{
BOOL Flag_Is_Moveable; //是否能够移动的标志
BOOL Flag_Is_Filled; //是否填满整行的标志
int BlockStyle; //方块的类型
}BLOCK;
//函数原型说明
void DrawBackground(HDC);
void DrawBlock(HDC, int, int, int);
void DrawGrayBlock(HDC, int, int);
void EraseBlock(HDC, int, int);
void InitializeBlock(BLOCK BlockArray[ROWS][COLS]);
BOOL GameOver(BLOCK BlockArray[ROWS][COLS]);
void GenerateNewBlock(HWND,BLOCK BlockArray[ROWS][COLS]);
BOOL NeedGenerateNewBlock(BLOCK Block[ROWS][COLS]);
void KillFullLine(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
BOOL CanBlockMoveDown(BLOCK Block[ROWS][COLS]);
BOOL CanBlockMoveRight(BLOCK BlockArray[ROWS][COLS]);
BOOL CanBlockMoveLeft(BLOCK BlockArray[ROWS][COLS]);
void MoveBlockFromSrcToDes (BLOCK BlockArray[ROWS][COLS],int SrcRow, int SrcCol, int DesRow, int DesCol);
void MoveBlockFromPreviewToGameArea(HWND hwnd, BLOCK BlockArray[ROWS][COLS]);
void MoveBlockDown(HWND hwnd,BLOCK Block[ROWS][COLS]);
void MoveBlockRight(HWND hwnd, BLOCK BlockArray[ROWS][COLS]);
void MoveBlockLeft(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
void Moveable2Stable(BLOCK Block[ROWS][COLS]);
void RefreshWindow(HWND hWnd,BLOCK BlockArray[ROWS][COLS]);
int JudgeBlockStyle(BLOCK BlockArray[ROWS][COLS]);
void ChangeBlockStyleToGray(BLOCK BlockArray[ROWS][COLS]);
void RotateStyleZero(HWND,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleOne(HWND,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleTwo(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleThree(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleFour(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
void RotateStyleSix(HWND hwnd,BLOCK BlockArray[ROWS][COLS]);
//第五种类型的积木不存在变形.它是一个正方形.所以没有相应的变形函数
/*
@ @
@ @
*/
BOOL InitClass(HINSTANCE);
BOOL InitWindow(HINSTANCE);
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL CALLBACK AboutDialogProc (HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
LRESULT CALLBACK HyperLinkProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -