初步概要设计关键函数
5个函数 2个背景音乐函数 3个提示音函数 【注意背景音乐可能要用到汇编编译】
声音
sound_BeiJing1() 开机界面与游戏设置
sound_BeiJing2() 备用于背景音乐的切换【难度增加时、魔豆出现与消失时】
sound_TiShiYin1() 上下左右
sound_TiShiYin2() 吃到食物
sound_TiShiYin3() 错误提示
随机放豆
基本函数: void vWriteCMD(uint8 ucCMD); //写命令
void vWriteData(uint8 ucData); //写数据
void Delay(uint32 x); //延时函数
应用层函数:
void vSetBean(uint8 ucSetx,uint8 ucSety); //是否可以放豆判断
void vDrawBean(uint8 ucPage,uint8 ucBeanLong,uint8 ucCol,uint16 ucWriteData)
//画出指定页面,列上的ucBeanlong长度的图像
void vClearSet(uint8 ucx,uint8 ucy); //清除某位置的2*2区域(此函数也可以作为蛇尾清楚函数)
LCD接口:
画指定大小(如2*2)像素
判断占位函数(针对放豆,换图时保留蛇的位置,蛇移动、死亡等)
void Delay(unsigned int x) //延时函数(延时时间)
void vWriteCMD(uint8 ucCMD) //写命令(指令)
void vWriteData(uint8 ucData) //写数据(数据)
void CleanAll(void) //清屏
void ClearArea(uint8 page,uint8 line,uint8 width,uint8 high) //清图片模块(起始页,起始列,图片宽度,图片高度)
void LCDInit(void) //初始化
void DisplayByte(uint8 ucPage,uint8 ucCol,uint8 ucData) //显示字节(起始页,起始列,数据)
void DisPicture(uint8 ucPage,uint8 ucCol,uint8 *pDisTable,uint8 width,uint8 hight) //显示图(起始页,起始列,图片数组名,图片宽度,图片高度)
lcd函数
蛇身运动需要的函数
drawbean() //绘制1个豆
cleanbean() //清除1个豆
drawpoint() //绘制一个点
snakemove() //蛇身运动 在蛇每前进一步豆做一次键盘扫描,确定是否有按键发生,确定是否调用 snakeasp()。
snakedead(uint8 *p,uint8 *q) //死亡函数,p,q为snake结构体的参数,p为蛇身存储指针,q为死亡条 件存储指针;在函数中每死亡一次,将对应的减少1个能量块(能量块:初始为3个,是游戏者死 亡限制)。
delay() //延迟函数
snakeasp(uint8 asp) //蛇身方向函数,如果在snakemove()判断有按键的话,将调用snakeasp(),确定 蛇是前进,后退,左右转,暂停等。asp为键盘按键返回值,确定switch(asp);
snakeadd() //蛇身增加函数,在吃到豆子后蛇身将增长。
snakemap() //通关函数,在蛇身达到一定长度时,将切换地图,增加蛇身运动速度。
snakeblack(uint8 *p,uint8 *w) //确定蛇头前方是否有豆子,w为豆子存在指针。
snake_stay()//判断是否暂停函数,蛇头和蛇第二节判断是否重合,避免与snakedead()冲突。