欢迎来到天天文库
浏览记录
ID:56324232
大小:2.90 MB
页数:16页
时间:2020-06-11
《拍飞虫实习报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、中国石油大学(华东)程序设计实训报告[拍飞虫]专业班级:实习时间:7月3号-7月6号实习地点:文理楼110组长:组员:游戏截图图一:开始游戏图二:开始打飞虫图三:打中红色飞虫扣五分图四:一局游戏结束,按空格继续游戏功能描述拍飞虫游戏是玩家用鼠标控制拍子,拍飞虫。飞虫每次从不同的位置、以不同的速度飞来飞去。玩家拍的飞虫越多,分数越高。1.游戏运行,界面出现“空格开始”的提示框。2.按下空格键,游戏开始,玩家移动鼠标控制拍子移动;点击鼠标左键,用拍子拍飞虫。3.每局游戏时间为30秒。游戏开始时,在屏幕左上角显示开局时间,并随
2、着游戏进行,实时显示游戏剩余时间。4.有3种飞虫,大飞虫、小飞虫和红色飞虫,拍到大飞虫得1分,拍到小飞虫得2分,拍到红色飞虫扣5分。分数实时显示在屏幕左上角。5.飞虫从各个方向,以随机速度在屏幕中穿梭。游戏过程当中,始终有飞虫让玩家拍打。6.游戏时间到后,游戏停止,重新显示初始界面。7.记录最高的5次游戏得分,按从大到小的顺序排列,显示在底部。8.玩家按空格可以继续游戏,如此往复。流程图数据结构1)g_iGameScore保存游戏获得的分数。2)g_fGameTime记录游戏的时间。3)FlyBug用一个结构体来存放飞虫
3、的名字和分数。4)iHighScore[5]用一个int型数组来存放每局游戏的分数。5)g_bStart用于判断游戏是否开始。6)g_fOldRotation拍子拍打角度。7)g_fRotateTime用于计算拍子拍打一次使用时间。8)g_ihuihe用于计量所进行的游戏的回合数。9)g_fScreenLeft左边界值。10)g_fScreenRight右边界值。11)g_fScreenTop上边界值。12)g_fScreenBottom下边界值。13)g_iCount,i,j计量变量。14)szName[128]用于给
4、飞虫命名的字符串。15)iScore计量飞虫所带的分数。16)fPosX拍子的X方向的位置。17)fPosY拍子的Y方向的位置。算法描述有14只蚊子,存储在FlyBug结构体中,每一只蚊子都有对应的名字和分数。g_bStart控制游戏的开始和结束,true的时候开始,false的时候结束。按下空格键,g_bStart由false变为true,游戏开始,倒计时开始计时30秒,warning和kaishi精灵消失,AddFlyBugs添加飞虫精灵,飞虫精灵添加后通过克隆三种模板精灵的运动使用自己定义的flying函数使蚊子自
5、由飞舞。游戏开始,鼠标消失,拍子捕捉鼠标位置跟随其运动,并改变其角度,然后通过给定函数的改变拍子的角度来实现拍子拍打的动画。当蚊子的坐标在拍子的坐标周围的时候,g_iGameScore变量进行计分,小飞虫2分,大飞虫1分,红色飞虫-5分。在时间到的时候飞虫精灵消失,kaishi精灵出现,分数被送至iHighScore[5]进行排序。当一局所得分数高于iHighScore[4]时,就将其赋值到iHighScore[4],并将iHighScore数组中的数据进行冒泡法排序。当再次按下空格键时,倒计时从30秒开始,计分清零,回
6、合数增加,又进行下一轮的游戏。再进行游戏调试的时候遇到多个bug,我组成员都将其一一修复。开始时,按下空格键开始,接着按空格键游戏又将重头开始,于是添加了一个对g_bStart的判断,保证了他们不会在游戏进行中初始化。在完成题目上给的要求的基础上,我们为了防止有人更改拍子的大小来作弊,于是添加了红色飞虫进行扣分,增加了难度。源代码#include"CommonAPI.h"#include"stdio.h"#include"string.h"boolg_bStart=false;intg_iGameScore=0;floa
7、tg_fGameTime=0;floatg_fOldRotation=0.f;floatg_fRotateTime=0.f;intg_ihuihe=0;floatg_fScreenLeft=0.f;//屏幕左边界值floatg_fScreenRight=0.f;//右floatg_fScreenTop=0.f;//上floatg_fScreenBottom=0.f;//下intg_iCount=0;intiHighScore[5]={0,0,0,0,0};charszName[128];inti;structFlyBug
8、{charszName[128];//飞虫名字intiScore;//分数值}FlyBugs[15];voidAddFlyBugs(){sprintf(FlyBugs[g_iCount].szName,"feichong_%d",g_iCount);FlyBugs[g_iCount].iScore=1;g_iCoun
此文档下载收益归作者所有