程序设计实训坦克大战实验报告

程序设计实训坦克大战实验报告

ID:39544351

大小:424.51 KB

页数:12页

时间:2019-07-05

程序设计实训坦克大战实验报告_第1页
程序设计实训坦克大战实验报告_第2页
程序设计实训坦克大战实验报告_第3页
程序设计实训坦克大战实验报告_第4页
程序设计实训坦克大战实验报告_第5页
资源描述:

《程序设计实训坦克大战实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、程序设计实训报告坦克大战专业班级:装控1401实习时间:2015年7月10日至7月14日实习地点:微401成员1:赵振华成员2:许晨欢成员3:蒋绪涛考勤(10%)文档(30%)创意及实现(30%)视频(30%)总成绩(100%)个人分成员1成员2成员311一、作品概述1.1创新点:1、自定义并命名树林和钢板精灵,设置树林属性为不接受碰撞可以自由穿梭,钢板为接受任何碰撞但不做任何处理(即子弹和坦克均不能摧毁钢板)。2、添加坦克发炮、击中目标和坦克移动的特殊声效。1.2概述:这款游戏是我们QWER小组以经典90版坦克大战为背景

2、制作的坦克大战的改编款,玩家通过控制坦克摧毁敌方坦克来保卫主基地不被摧毁。当敌我双方坦克相碰或己方基地被子弹摧毁时游戏结束(敌我双方子弹均可摧毁基地),每隔3秒钟出现一辆敌方坦克,游戏最大时长为100秒。此款游戏与经典90版坦克大战较为相似,操作简单,能唤起我们对童年的回忆。二、功能设计玩家坦克与敌方坦克在街道中进行巷战,玩家坦克被击中或与敌方坦克相撞、玩家指挥部被击中或游戏时间到,一局游戏结束。按下空格键后游戏开始,“空格开始”消失,载入地图,100秒倒计时开始,并把玩家坦克设置在指挥部左侧。游戏时间到,玩家坦克被敌方坦

3、克摧毁,与敌方坦克相撞,或者玩家指挥部被摧毁,一局游戏结束,游戏回到初始界面,并显示上一局的分数。玩家用W、A、S、D键控制坦克上、下、左、右运行,按J键开炮。坦克行进过程中有特殊声效,坦克发射或击中目标都有相应的声效。玩家坦克碰到墙和钢板就停下来,需要调转方向才能继续前进。玩家坦克开炮,一炮就能摧毁一块墙或者一辆敌方坦克,但不能摧毁钢板,玩家可穿梭于树林中。玩家每摧毁一辆敌方坦克,加1分。玩家指挥部被坦克或者炮弹(不管玩家还是敌方)碰上,都会被摧毁。每隔3秒钟,就会产生一辆敌方坦克。敌方坦克每隔一段时间,就自动开炮。敌方

4、坦克遇到墙就会停下来。停下来的坦克,前方的墙如果被摧毁了,又能继续前进。每隔几秒钟,敌方坦克就会顺时针变换一个方向前进。每局最大时长为100秒。11三、功能实现3.1数据结构structWeapon{charszName[128];//精灵名称floatfPosX,fPosY;//精灵坐标floatfSpeedX,fSpeedY;//X和Y方向上速度11floatfFireTime;//敌方坦克距下一次开炮的剩余时间floatfRotateTime;intiHp;//生命值intiDir;//朝向:0-上方;1-右方;2-

5、下方;3-左方intiType;//类型:0-我方坦克;1-敌方坦克;2-我方//子弹;3-敌方子弹Weapon*pNext;//指向下一个节点的指针};enumDirection{UP=0,//上方RIGHT=1,//右方DOWN=2,//下方LEFT=3//左方};enumRole{MYTANK=0,//我方坦克ENEMYTANK=1,//敌方坦克MYBULLET=2,//我方子弹ENEMYBULLET=3//敌方子弹};constfloatGAME_TIME=100.f;//一局游戏时间constfloatCREAT

6、E_TANK_TIME=2.f;//每批次生成坦克的时间间隔constfloatTANK_SPEED=20.f;//坦克速度constfloatBULLET_SPEED=30.f;//子弹速度constfloatFIRE_TIME=2.f;//坦克开炮时间间隔constfloatWORLD_LEFT=-26.f;//游戏场景边界左值11constfloatWORLD_TOP=-22.f;//游戏场景边界左值constfloatWORLD_RIGHT=26.f;//游戏场景边界左值constfloatWORLD_BOTTOM

7、=22.f;//游戏场景边界左值intg_iMap[11][13];//二维数组定义游戏地图intg_iWallCount=0;//游戏中墙的数量intg_iNum=0;//记录全部精灵的数目,用来给精灵命名floatg_fCreateTime=0.f;//每批次生成坦克的剩余时间intg_listSize;constfloatROTATE_TIME=2.f;//敌方坦克调转方向的时间boolg_bStart;//定义游戏开始与否intg_iScore;//游戏中的分数floatg_fGameTime=30.f;//定义游

8、戏时间intmaxscore=0;//定义初始最高分3.2算法描述3.2.1游戏开始和结束1、游戏状态g_bstart分为两种状态0,1,其中0表示游戏结束状态,1表示游戏开始;当游戏未开始时即g_start状态为0,按下空格键,游戏g_bstart状态变为1,游戏开始,将“空格开始”与“splash”

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。