接物游戏(CatchIt).ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
接物游戏(CatchIt)

接物游戏(CatchIt)设计 本章主要讲述: 游戏界面设计 人机交互设计 数据结构设计 游戏任务设计 任务之间的同步和通信设计 相关功能函数模块实现 游戏界面设计 三、人机交互设计 计算机从三个地方(左中右)随机丢下各种物品(红心、金子、苹果、石头和太阳),而且随着游戏进程推进加快下落速度。 玩家通过键盘移动接物者老鼠位置,以便接住好东西,避开坏东西(石头、太阳等)。 老鼠接住一个红心增加一条生命,接住金子和苹果分别增加20分和10分。 老鼠被石头砸中减少一条生命,当生命值为0时结束游戏。 当老鼠被太阳砸中时,直接结束游戏。 当然,如果老鼠成功避开太阳和石头,则增加10分。 当分数达到一定数量时表示成果过关。 游戏数据结构设计 一、游戏位置的表示 左-0,中-1,右-2。 游戏任务的设计 按键处理任务(TaskKey):对按键进行检测(主要是向左键和向右键),并获取按键的键值。 老鼠移动任务(TaskMove):根据玩家按键在移动老鼠位置。 物体下落 任务(TaskDrop):应当有三个类似任务(左中右),但是由于它们做的事情基本相似,所以可以基于一个任务函数创建三个任务,通过传递给pdata参数不同的值(左、中、右)以表示不同的任务。 游戏成绩显示任务TaskDispScore:显示级别、生命值、得分。 任务之间同步和通信设计 “下落任务”和“老鼠移动任务”都需要访问老鼠的位置信息,但是两者之间没有同步制约关系,所以不能采用消息邮箱实现两个任务之间的数据通信。这时候只有通过全局变量实现。 按键任务(TaskKey)实现 void TaskKey(void *pdata) { 。。。。。 while (1) { Key = ZLG7290GetKey(); if ((Key == 0) || (Key = 17) ) { OSTimeDly(OS_TICKS_PER_SEC / 100); continue; } OSMboxPost(MyBox,(void *)Key); OSTimeDly(OS_TICKS_PER_SEC / 2); } } 移动任务(TaskMove)实现 void TaskMove(void *pdata) { 。。。。。。 GameInit(); 创建三个物体下落任务; while(1) { Key = *(INT16U *)OSMboxPend(KeyBox,0,err); if(游戏进行中) 根据键值进行左移、右移处理; else if(游戏结束状态) 重新开始处理; OSTimeDly(100); } } 物体下落(TaskDrop)任务 void TaskDrop(void *pdata) { unsigned char *Pic; INT8U No; //下落物体图像编号 //物体下落位置 0-左边,1-中间,2-右边 INT8U DropPos; DropPos = *(INT8U *)pdata; //获得下落位置 while(1) { 产生一个0-4的随机书,作为下落物体图像编号; 根据编号获取下落物体图像像素数组; 在初始位置显示下落物体图像; 物体下落处理;(循环) 根据生命值和分数判断游戏是否结束并进行相 应处理; } } 物体下落处理 while(1) { 延时; 擦除原来位置下落物体图像; 刷新位置; if(物体落到底部位置范围并没有接住) { //碰撞检测 如果躲的是石头和太阳则加10分; } else if(物体落到底部位置并接住) { 根据不同情况进行处理; } else { /在新的位置重新绘制下落物体图像; } } 判断游戏是否结束并进行相应处理; if(Life==0) {

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档