- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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; /
您可能关注的文档
最近下载
- 2024年温州市瓯海区事业单位招考和选调工作人员【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 人教版四年级上册数学复习教案.doc VIP
- (2024秋新版)一年级语文上册《 小小的船》教案.pdf VIP
- (2024秋新版)一年级语文上册《 影子》PPT课件.pptx VIP
- 小学二年级语文课件-西师大版-让猫头鹰好好睡觉PPT课件分析.ppt
- 上海开放大学电子文献及图书的检索和使用描述.docx
- 阴式子宫全切查房.pdf VIP
- 半导体名词解释.docx
- 工程造价范文11088185014-毕业设计 9#住宅楼施工图预算编制.doc
- (2024秋新版)一年级语文上册《 小小的船》教案.doc VIP
文档评论(0)