- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国石油大学(华东)
程序设计实训报告
[拍飞虫]
专业班级:
实习时间: 7月3号-7月6号
实习地点: 文理楼110
组长:
组员:
游戏截图
图一:开始游戏
图二:开始打飞虫
图三:打中红色飞虫扣五分
图四:一局游戏结束,按空格继续游戏
功能描述
拍飞虫游戏是玩家用鼠标控制拍子,拍飞虫。飞虫每次从不同的位置、以不同的速度飞来飞去。玩家拍的飞虫越多,分数越高。
游戏运行,界面出现“空格开始”的提示框。
按下空格键,游戏开始,玩家移动鼠标控制拍子移动;点击鼠标左键,用拍子拍飞虫。
每局游戏时间为30秒。游戏开始时,在屏幕左上角显示开局时间,并随着游戏进行,实时显示游戏剩余时间。
有3种飞虫,大飞虫、小飞虫和红色飞虫,拍到大飞虫得1分,拍到小飞虫得2分,拍到红色飞虫扣5分。分数实时显示在屏幕左上角。
飞虫从各个方向,以随机速度在屏幕中穿梭。游戏过程当中,始终有飞虫让玩家拍打。
游戏时间到后,游戏停止,重新显示初始界面。
记录最高的5次游戏得分,按从大到小的顺序排列,显示在底部。
玩家按空格可以继续游戏,如此往复。
流程图
数据结构
g_iGameScore 保存游戏获得的分数。
g_fGameTime 记录游戏的时间。
FlyBug 用一个结构体来存放飞虫的名字和分数。
iHighScore[5] 用一个int型数组来存放每局游戏的分数。
g_bStart 用于判断游戏是否开始。
g_fOldRotation 拍子拍打角度。
g_fRotateTime 用于计算拍子拍打一次使用时间。
g_ihuihe 用于计量所进行的游戏的回合数。
g_fScreenLeft 左边界值。
g_fScreenRight 右边界值。
g_fScreenTop 上边界值。
g_fScreenBottom 下边界值。
g_iCount,i ,j计量变量。
szName[128] 用于给飞虫命名的字符串。
iScore 计量飞虫所带的分数。
fPosX 拍子的X方向的位置。
fPosY 拍子的Y方向的位置。
算法描述
有14只蚊子,存储在FlyBug结构体中,每一只蚊子都有对应的名字和分数。
g_bStart控制游戏的开始和结束,true的时候开始,false的时候结束。
按下空格键,g_bStart由false变为true,游戏开始,倒计时开始计时30秒,warning和kaishi精灵消失,AddFlyBugs添加飞虫精灵,飞虫精灵添加后通过克隆三种模板精灵的运动使用自己定义的flying函数使蚊子自由飞舞。
游戏开始,鼠标消失,拍子捕捉鼠标位置跟随其运动,并改变其角度,然后通过给定函数的改变拍子的角度来实现拍子拍打的动画。
当蚊子的坐标在拍子的坐标周围的时候,g_iGameScore变量进行计分,小飞虫2分,大飞虫1分,红色飞虫-5分。
在时间到的时候飞虫精灵消失,kaishi精灵出现,分数被送至iHighScore[5]进行排序。当一局所得分数高于iHighScore[4]时,就将其赋值到iHighScore[4],并将iHighScore数组中的数据进行冒泡法排序。
当再次按下空格键时,倒计时从30秒开始,计分清零,回合数增加,又进行下一轮的游戏。
再进行游戏调试的时候遇到多个bug,我组成员都将其一一修复。
开始时,按下空格键开始,接着按空格键游戏又将重头开始,于是添加了一个对g_bStart的判断,保证了他们不会在游戏进行中初始化。
在完成题目上给的要求的基础上,我们为了防止有人更改拍子的大小来作弊,于是添加了红色飞虫进行扣分,增加了难度。
源代码
#include CommonAPI.h
#include stdio.h
#include string.h
bool g_bStart = false;
int g_iGameScore = 0;
float g_fGameTime =0;
float g_fOldRotation = 0.f;
float g_fRotateTime = 0.f;
int g_ihuihe = 0;
float g_fScreenLeft = 0.f; // 屏幕左边界值
float g_fScreenRight = 0.f; // 右
float g_fScreenTop = 0.f; // 上
float g_fScreenBottom = 0.f; // 下
int g_iCount = 0;
int iHighScore[
文档评论(0)