“黄金矿工”实验报告.doc

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

中国石油大学(华东) 程序设计实训报告 “黄金矿工”实验报告 游戏截图 图一:开始游戏 图二:按下空格键开始游戏,出现金块,钩子转动 图三:按下↓键,钩子停止转动,开始下放,抓取金块 图四:抓完金块后返回初始界面 功能描述 游戏运行,初始界面出现“空格开始”的提示。 玩家按下空格键,开始游戏。 游戏开始后,界面随机出现20个大小不同的金子,并且钩子开始转动。 按下↓键,钩子停止转动,下放,抓取金子。 抓到金子后,返回到初始位置,被抓到的金子消失。 用户继续按下↓键,继续抓取金子,直到金子被抓取完,这样一局游戏完成。 一局游戏完成后,屏幕重新出现“空格开始”的标志,用户按下空格可以继续游戏,如此往复。 流程图: 数据结构: 1、g_fGoldBornMinX 金子左边界 2、 g_fGoldBornMaxX 金子右边界 3、 g_fGoldBornMinY 金子上边界 4、 g_fGoldBornMaxY 金子下边界 5、g_iGoldCount 屏幕中金子数目 6、 g_iGameState 设置游戏状态 7、szGotGoldName[20] 当前抓到金子的名称 8、g_fHookRotation 钩子的转动的角速度 9、 g_fEmptyHookSpeed 钩子的下放的初始速度 10、g_fHookStartPosX 存储钩子的初始X位置 11、g_fHookStartPosY 存储钩子的初始Y位置 算法描述: 游戏状态g_iGameState分为三种状态0,1,2 ,其中0表示游戏结束状态,1表示游戏初始化,2则表示游戏运行状态; 0 ( 1的转换为“空格开始”; 1 ( 2的转换自然发生,即游戏初始化函数后会自动将游戏状态从1置为2; 2 表示游戏运行状态,在该状态,按下↓键可以抓取金子; 2 ( 0的转换为当金子全被抓完后会自动将游戏状态从2置为0; 金子精灵的初始化: 1、创建金子精灵的对象; 2、生成大小为4的小金块10个、 大小为6的中金块6个、大小为8的大金块4个,并保存tmpName数组中,随机获取每个金子的坐标; 3、隐藏“空格开始”精灵; 4、设置屏幕中剩下的金子数目为20,每当被抓走的一块金子消失后屏幕中剩下的金子数目减1; 5、当屏幕中剩下的金子数目为0时,一局游戏结束,返回初始界面,“空格开始”精灵出现; 6、重新进行金子精灵的初始化; dOnKeyDown(const intiKey, const boolbAltPress, const boolbShiftPress, const boolbCtrlPress ) 游戏开始和控制按钮: 游戏还未开始,即游戏状态为0,如果空格按被下,则将游戏状态改为1,此时对程序的数据进行初始化,“空格开始”精灵消失,金子出现,钩子转动; 游戏状态为0时并按下空格键后,,如果按下↓键,钩子开始下放抓金子,当抓到金子后,游戏的状态变为2游戏正式开始运行; 游戏状态为2时,钩子抓住金子后,按照金子的大小设置金子的速度,金子越大,回拉速度越小; 当钩子和金子回到初始位置后,被抓的金子消失; 源代码: 在Main.cpp文件中 //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- #include CommonAPI.h #include stdio.h #include string.h void DrawHookLine(); int g_fGoldBornMinX = 0; int g_fGoldBornMaxX = 0; int g_fGoldBornMinY = 0; int g_fGoldBornMaxY = 0; int g_iGoldCount = 20; int g_iGameState=2; int flag=1; int flagnum=0; char szGotGoldName[20] ; //当前抓到金子的名称 float g_fHookRotation = 0.f; float g_fEmptyHookSpeed =35.f; float fTimeDelta; float g_fHookStartPosX; //存储钩子的初始X位置 float g_fHookStartPosY; /

文档评论(0)

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

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

1亿VIP精品文档

相关文档