基于ucos的贪吃蛇游戏设计.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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);

文档评论(0)

管理学科 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档