⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gameprocess.c

📁 由51单片机与12864组成 俄罗斯方块游戏程序 keil工程
💻 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 + -