C语言课程设计_黄金矿工(提高篇)8.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言课程设计_黄金矿工(提高篇)8

C语言课程设计--黄金矿工 一、实验内容 玩家通过键盘的按键控制矿工抓取金块,将钩子碰触到的金块抓取过来。 要求如下: 游戏的初始界面如下图(一),单机键盘上的空格键进入游戏,进入后界面如图(二),金块的总数是20,大小位置是随机的。 在没有抓取状态下,钩子左右摆动,此时矿工的是静止的。当钩子摆动到一定角度,玩家可以单击键盘上的上下左右键中的下方向键控制矿工伸出长钩,抓取金子,此时矿工是向下摇动转轴。获取到金子往回拉后,矿工是不断转动转轴,知道金子拉动到钩子初始处,矿工恢复静止,钩子继续左右摇摆,直到玩家再次单击向下方向键。 伸出的钩子如果碰触到金子,则钩子和金子一起往回拉,回收的速度根据抓取到的金子的大小变化而变化,金子越大,回拉的速度越慢,反之亦然。如果钩子没有碰触到金子,而是碰触到左右和下的边界,则钩子保持原来的速度往回收。 抓取到的金子拉回到转轴处消失,此时金子数目减少一个。如果玩家将所有金子抓取完,游戏返回到如图(一)的初始界面。 图(一) 图(二) 二、实验指南 实验一 开始实验 【实验任务】 步骤一、打开FunCode,创建一个的C语言项目; 步骤二、导入Goldman模板。 【实验思路】 按实验指导完成。 【实验指导】 打开FunCode,点击“项目”菜单,选择“创建C语言工程” 注意:工程名名称要求字母开头,只能包含字母和数字,且名字中间不能有空格。 点击菜单“项目”中的“导入地图模块”,如图一。跳出一个对话框,选中“Goldman”模板,点击“导入到工程”按钮,如图二。 图 一 图 二 导入成功后的,界面如下图所示: 实验二 单击空格键,开始游戏 【实验内容】 步骤、启动游戏显示“空格开始”,单击空格键进入游戏初始界面。 【实验思路】 系统会自动响应dOnKeyDown函数来响应键盘按下消息,这部分代码实现在main.cpp里。我们要做的就是通过在main.cpp的dOnKeyDown函数里实现我们的代码。当用户单击键盘上的空格键之后,设置GameBegin即“空格开始”精灵不可见。 【实验指导】 首先游戏会有不同的游戏状态,我们设置全局变量g_iGameState,分别用游戏状0 表示游戏结束等待开始状态;游戏状态1表示按下空格键开始,初始化游戏;游戏状态2表示游戏进行中; 有了以上游戏状态的定义,我们就可以将游戏的主流程写出来;由于游戏是一直进行的,所以一下要写在while循环当中: switch( g_iGameState ) { // 初始化游戏,清空上一局相关数据 case 1: { GameInit(); g_iGameState = 2; // 初始化之后,将游戏状态设置为进行中 } break; // 游戏进行中,处理各种游戏逻辑 case 2: { // 金子数量大于0的时候,继续游戏 if( g_iGoldCount 0 ) { GameRun( fTimeDelta ); } else { // 游戏结束。调用游戏结数函数并把游戏状态修改为结束状态 g_iGameState = 0; GameEnd(); } } break; // 游戏结束/等待按空格键开始 case 0: default: break; }; 这是游戏的总体框架,那么我们就来完成这个游戏; 我们已经知道,系统会自动检测键盘的按下消息,即main.cpp里面的dOnKeyDown函数。系统会捕获按下什么键,是否同时按下Alt键或Shift键或Ctrl键,通过dOnKeyDown的参数传递进来,供编程者使用。 键盘的键值我们通过枚举类型给出,其中空格对应的键值为KEY_SPACE,所以当ikey参数的值为KEY_SPACE且游戏的状态为0,即g_iGameState的值为0,说明用户单击了空格键,之后将g_iGameState的值改为1,说明游戏开始,并且把“游戏开始”精灵隐藏掉。 如果是空格键按下,则说明现在游戏开始,说明游戏状态进入1,我们在GameInit中调用dSetSpriteVisible函数将“空格开始”隐藏;这里我们就不在添加代码。 至此,实验二完成,单机空格键,“空格开始”消失,游戏进入初始化状态。 实验三 钩子左右摇摆 【实验内容】 步骤、钩子在等待抓取状态下左右摇摆 【实验思路】 钩子的摆动实际是动画精灵以某个点为中心位置,在某个角度范围来回旋转。在FunCode中,游戏不断刷新屏幕,每次时间为几微秒,每次刷新相应改变精灵的角度,就能达到旋转的效果。 游戏每刷新一次屏幕,while循环执行一次,

文档评论(0)

pfenejiarz + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档