- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于 ucos 的贪吃蛇游戏设计
游戏简介:
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一
个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,
则食物被吃掉,蛇身体长一节,接着又出现食物,等待蛇来吃,如果蛇在移动中
撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
设计思路:
这个程序的关键是表示蛇的图形以及蛇的移动。用一个小圆形表示蛇的一节
身体,身体每长一节,增加一个圆形块,蛇头用一节表示。移动时必须从蛇头开
始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,
蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向
移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然
后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这是由于没
有清屏的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来多一节身体,
所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画圆形块和覆盖圆形
块表示。
蛇的不停移动,就是蛇的下一节取代前一节的位置,在计算机中就是蛇下一
节的位置坐标变成前一节的位置坐标。在上文中,已定义蛇的位置坐标为数组类
型,一组坐标对应一节的位置,假设有i+1节,由0到i节,第i节的坐标取第
i-1节的坐标,第i-1节的坐标取第i-2节的坐标……直到第1节取第0节的坐
标。而第0节的坐标,即蛇头的坐标要往某个方向变化,变化量为蛇每节的长度。
蛇的这种坐标轮换需要循环语句使其继续下去。
************************任务划分及优先级定义********************
此游戏已经成功移植到S3C2410开发板上运行,是基于ucos系统的应用小
游戏。由此,将游戏划分成两个任务:屏幕显示任务、键盘扫描任务。先由键盘
扫描任务获取键值,控制显示任务绘制图形,由此屏幕显示任务优先级比键盘扫
描任务较低。任务控制块与优先级定义代码如下:
OS_STK Main_Stack[STACKSIZE]={0, }; //Main_Test_Task 堆栈
void Main_Task(void *Id); //Main_Test_Task
#define Main_Task_Prio 8
OS_STK Key_Stack[STACKSIZE]={0, }; //test_Test_Task 堆栈
void Key_Task(void *Id); //test_Test_Task
#define test_Task_Prio 6
************************任务间通信******************************
消息邮箱是 uC/OS-II 中的一种通信机制,可以使一个任务或者中断服务子
程序向另一个任务发送一个指针型的变量。通常该指针指向一个包含了“消息”的
特定数据结构。此游戏需要键盘给屏幕发送数据,因此采用邮箱机制完成两任务
1
之间的通信。在使用消息邮箱前,首先要配置相关参数,修改相关 os_cfg.h 文
件:
#define OS_MBOX_EN 1
#define OS_MBOX_ACCEPT_EN 1
#define OS_MBOX_DEL_EN 1
#define OS_MBOX_POST_EN 1
#define OS_MBOX_POST_OPT_EN 1
#define OS_MBOX_QUERY_EN 1
有关消息邮箱使用关键代码如下:
OS_EVENT *keybox; ////////////////定义一个事件
keybox=OSMboxCreate((void *)0);////////创建一个空邮箱
OSMboxPost(keybox,key);
INT8U *key1,err;
key1=OSMboxPend(keybox,0,err);
您可能关注的文档
最近下载
- 中考现代文阅读——迟子建《母亲的文化》.pdf VIP
- 幼儿园《各种各样的车》ppt课件.pptx VIP
- 中药的性能PPT课件.ppt
- 美剧剧本绝望主妇台词本中英文对照精排版第一季第一集.pdf
- 2024年秋季学期新外研版(三起)英语三年级上册课件 Unit3 Part4.pptx
- 《考研英语阅读考前60天高分.doc VIP
- 中国科学技术(大学)高等代数(线性代数与解析几何)历年考研试题.pdf
- 2021-2022年江苏苏州太仓市六年级上册期中语文试卷及答案(部编版).doc VIP
- 2024年山东省风力发电运维值班员技能竞赛理论考试题库(含答案).docx
- 绿色消费积分实施方案.docx
文档评论(0)