初步概要设计关键函数

  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()冲突。

原文地址:https://www.cnblogs.com/xinweichen/p/2205836.html