📄 gameprocess.c
字号:
//*************************************************************************************************
//* *
//* ******************************游戏动作处理程序************************** *
//* *
//*************************************************************************************************
#include "includes.h"
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定义当前方块属性变量>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
BLOCK *psta_BlockCur=sta_BlockSet,*psta_BlockNext; //指向当前方块设定的指针。
bit b_GameStart=0; //游戏开始标志位。
//*************************************************************************************************
//* *
//* ********************************游戏初始化******************************* *
//* *
//*************************************************************************************************
void vGameInitialize()
{
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<清空LCD>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vCleanAll();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<清空游戏区域>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vCleanAllBlock();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化分数显示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vMarkInitialize();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化时间显示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vTimeInitialize();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化等级显示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vLevelInitialize();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化游戏边框>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vShowFrame();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化方块位置>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uc_BlockRow=STARTROW;
uc_BlockLine=STARTLINE;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化方块类型>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vNewBlock();
psta_BlockCur=psta_BlockNext;
vNewBlock();
vShowBlockEx(6,18,psta_BlockNext);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<初始化方块显示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vCreateBlock();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<设游戏开始标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
b_GameStart=1;
}
//*************************************************************************************************
//* *
//* ******************************判断游戏是否结束************************** *
//* *
//*************************************************************************************************
unsigned char ucIsGameOver()
{
unsigned char ucCount;
for(ucCount=0;ucCount<12;ucCount++)
if(ucReadBlock(0,ucCount))
return 1;
return 0;
}
//*************************************************************************************************
//* *
//* ******************************游戏结束处理函数************************** *
//* *
//*************************************************************************************************
void vGameOver()
{
b_GameStart=0;
vShowGraph(3,30,70,2,uca_GAMEOVER);
}
//*************************************************************************************************
//* *
//* ******************************游戏动作处理函数**************************** *
//* *
//*************************************************************************************************
void vBlockAction(unsigned char ucAction)
{
if(ucMoveDecide(ucAction)) //判断方块是否可以移动。
vMoveBlock(ucAction); //如果可以,则移动方块。
else
if(ucAction==ACTIONDOWN)
{
if(ucIsGameOver())
vGameOver();
else
{
vGetMark();
uc_BlockRow=STARTROW;
uc_BlockLine=STARTLINE;
psta_BlockCur=psta_BlockNext;
vNewBlock();
vShowBlockEx(6,18,psta_BlockNext);
vCreateBlock();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -