- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】
IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】
程序设计实训坦克大战实验报告
程序设计实训报告
坦克大战
专业班级:装控1401
实习时间:2015年7月10日至7月14日
实习地点:
成员1:赵振华
成员2:许晨欢
成员3:蒋绪涛
考勤(10%)
文档(30%)
创意及实现(30%)
视频
(30%)
总成绩
(100%)
个人分
成员1
成员2
成员3
一、作品概述
创新点:
1、自定义并命名树林和钢板精灵,设置树林属性为不接受碰撞可以自由穿梭,钢板为接受任何碰撞但不做任何处理(即子弹和坦克均不能摧毁钢板)。
2、添加坦克发炮、击中目标和坦克移动的特殊声效。
1.2概述:
这款游戏是我们QWER小组以经典90版坦克大战为背景制作的坦克大战的改编款,玩家通过控制坦克摧毁敌方坦克来保卫主基地不被摧毁。当敌我双方坦克相碰或己方基地被子弹摧毁时游戏结束(敌我双方子弹均可摧毁基地),每隔3秒钟出现一辆敌方坦克,游戏最大时长为100秒。此款游戏与经典90版坦克大战较为相似,操作简单,能唤起我们对童年的回忆。
二、功能设计
玩家坦克与敌方坦克在街道中进行巷战,玩家坦克被击中或与敌方坦克相撞、玩家指挥部被击中或游戏时间到,一局游戏结束。
按下空格键后游戏开始,“空格开始”消失,载入地图,100秒倒计时开始,并把玩家坦克设置在指挥部左侧。
游戏时间到,玩家坦克被敌方坦克摧毁,与敌方坦克相撞,或者玩家指挥部被摧毁,一局游戏结束,游戏回到初始界面,并显示上一局的分数。
玩家用W、A、S、D键控制坦克上、下、左、右运行,按J键开炮。坦克行进过程中有特殊声效,坦克发射或击中目标都有相应的声效。玩家坦克碰到墙和钢板就停下来,需要调转方向才能继续前进。玩家坦克开炮,一炮就能摧毁一块墙或者一辆敌方坦克,但不能摧毁钢板,玩家可穿梭于树林中。玩家每摧毁一辆敌方坦克,加1分。
玩家指挥部被坦克或者炮弹(不管玩家还是敌方)碰上,都会被摧毁。
每隔3秒钟,就会产生一辆敌方坦克。敌方坦克每隔一段时间,就自动开炮。敌方坦克遇到墙就会停下来。停下来的坦克,前方的墙如果被摧毁了,又能继续前进。每隔几秒钟,敌方坦克就会顺时针变换一个方向前进。每局最大时长为100秒。
三、功能实现
数据结构
structWeapon
{
char szName[128]; 树林生成的顺序,分别给精灵命名为:shu,shu1,shu2……,钢板分别命名为aa1,aa2……。
2、一局游戏结束后删除地图。
3、玩家坦克碰到墙的话,不能继续前行。设置玩家坦克的碰撞属性,并专门定义一个函数处理玩家坦克发生碰撞后,玩家坦克的响应。
玩家坦克射击
1、玩家按下j键,坦克发送炮弹;自定义一个函数,OnFire用于完成坦克发射子弹功能。玩家坦克发射子弹,和敌方坦克发射子弹功能基本一样,我们可以写在一个函数里。首先,需要把发射子弹的坦克名称传进来,这样,我们才能获取坦克的朝向和位置;其次,需要区别是我方坦克发射的子弹,还是敌方坦克发射的子弹。在dOnKeyDown中增加对OnFire函数的调用。条件需要满足:游戏开始后,且玩家按J键。
2、创建链表,用链表管理炮弹;用链表管理子弹,每发射一颗子弹,就添加到链表里。每删除一颗子弹,就从链表里相应删除节点。游戏结束时,删除所有剩余的子弹。
3、子弹击中墙,将墙摧毁;子弹击中目标,游戏结束。碰撞事件中,我们经常会将碰撞的一方或两方删除。但是,如果我们直接删除某个精灵,而后面的精灵还需要获得它的信息时,就没法获得了。因此,我们定义一个ISDead函数,当该指针存在且iHp为0时,说明该精灵已死。碰撞函数中,先将需要删除的精灵的iHp设置为0,最后再统一将需要删除的精灵删除。
4、在dOnSpriteColSprite函数中调用上面两个碰撞函数。其中,墙只具有“接受碰撞”属性,因此只需要判断szTarName是否包含wall字符串。子弹具有“发射碰撞”和“接受碰撞”两种属性,因此需要分别判断szSrcName和szTarName是否包含bullet字符串。
敌方坦克产生与运动
1、每隔一段时间,生成一辆敌方坦克,向下运动;坦克生成的初始位置前方不能有墙。
自定义一个函数,用于生成敌方坦克。每次生成一辆敌方坦克,总是放在第一排,列数随机,但其前方不能有墙。方向朝向,设置“发送碰撞”和“接受碰撞”属性,设置世界边界。创建一个Weapon指针节点,将精灵名称、朝向、坦克调转方向时间保存起来,
您可能关注的文档
- 福师大大学英语第二次网络作业.docx
- 福建卷英语完形填空真题详解及翻译.docx
- 福建省专升本高等数学真题卷.docx
- 福建省中小学教师职务考评登记表新编~.docx
- 福建省中小学教师职务考评登记表有页码.docx
- 福建省义务教育课程设置及比例课程安排.docx
- 福建省公务员或事业单位干部调动呈报表.docx
- 福斯flowserve阀门定位器调试方法.docx
- 程序gp绿色供应商管理程序.docx
- 程控放大器设计报告.docx
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
原创力文档


文档评论(0)