- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Unity3D 的Android 飞行类游戏设计.doc
基于Unity3D 的Android 飞行类游戏设计
摘要:该文分析了使用Unity3D设计飞行类Android游戏的方法和过程,包括背景的设置、主角飞机的制作,敌机的制作,子弹的制作,这些游戏物体之间的碰撞反应和玩家控制游戏的方法,使用C#语言来编写游戏程序,包括用代码控制场景的切换,飞机、子弹、奖励物品的自由落体或者飞行,碰撞之后发生的效果以及变化等等。最后对游戏进行了测试与总结。
关键词:Unity3D;飞行类游戏;C#编程;碰撞检测
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2015)30-0168-03
飞行类游戏在社交媒体上传播与流行,尤其是设计简洁、玩法直接的小型化飞机游戏尤其受到欢迎。通过使用Unity3D引擎,可以快速开发出飞行游戏。利用Unity3D提供的游戏对象、碰撞探测和控制输入等功能,让开发者无需从底层开始开发,通过点选操作,辅助以少量C#代码便可以所操即所见、所见即所得,即时看到游戏的效果进行快速开发。本项目美工方面用Photpshop、3DS Max等软件简单进行处理,满足项目的要求UI与游戏美术要求。
1 总体设计
起初设计飞机射击游戏灵感来源于微信的“打飞机”游戏,在微信上好友一起竞技比拼所获得的分数,这里还包含网络通信设计,本文不涉及。单机的飞机射击游戏要考虑很多因素,比如积分,一些玩法上和界面上的设计等方面。界面上设计包括使用不同的飞机、子弹要素,几种爆炸效果,碰撞奖励物品效果等。玩法上包括子弹奖励和TNT炸弹奖励,这两种将奖励物品随机出现,一种是子弹的奖励,将原本中间一路子弹变成侧翼的两路子弹;另一种则是威力强大的TNT炸弹奖励,能够清空屏幕内所有的敌机。游戏失败的情况设计,敌机与玩家控制的飞机产生碰撞后进入失败画面。敌机设计上,敌机不产生子弹,玩家只需要躲避屏幕上方下落的敌机即可。子弹的奖励是有固定的持续时间,TNT炸弹奖励可以储存累加,点击右下角的炸弹的小图标使用。游戏的操作是通过手指控制主角飞机移动,玩家躲避敌机并可以接受在敌机中降落的奖励物品。子弹是跟随主角的移动而移动,所以只需要把自身飞机(即是子弹的轨迹)瞄准到敌机即可击落敌机,设计得尽量操作简单些。
开发工具使用Unity3D,平台为Android操作系统。利用Unity的Level功能,预设计游戏提供三种关卡,第一种叫做经典模式,即普通的飞机游戏。第二种是疯狂模式,敌机下落的速率以及血量都有提升,同样玩家控制的飞机发出的子弹威力也更大。第三种是换机模式,玩家控制的飞机换了模型,换了模型之后的飞机,在参数上,设置了威力更大的子弹(子弹出现的速率高),奖励物品的威力也同时加强。
2 游戏对象
2.1 游戏背景与主角飞行效果
整个游戏的背景产用两张贴图的叠加。采用代码控制两张同样的贴图交替移动,实现背景的移动,导入飞机后就能够产生飞机移动的效果。关键代码包括,要在外部定义公有变量设置移动的速度,这里必须要注意是要设置为静态变量,否则运行程序会报错。关键代码如下。
public static float moveSpeed=4f;
接下来实现背景图的移动。跟随时间变化进行下移。
this.transform.Translate(Vector3.down*moveSpeed*Time.deltaTime);
一旦超过摄像机的范围,单张背景图就应该移动到新的位置。
if(postion.y=-8.52f) {
this.transform.position=new Vector3(postion.x,postion.y+8.52f*2,postion.z);
}
其中,8.52f是由背景图片的高像素决定的,图片高为852像素。
飞机的飞行,单张的飞机素材是不行的。现在已经实现了背景的移动,以背景为参照物,飞机已经在飞行。现在要产生飞机的飞行效果。使用两张不同飞机尾部燃烧效果,首先定义精灵图组,键入以下关键代码。然后在Inspector面板中进行选择贴图,即能实现飞机喷气飞行效果。完成效果如图1所示。
if(animation){
timer+=Time.deltaTime;
int frameIndex = (int)(timer/(1f/frameCountPersconds));
int frame = frameIndex%2;
spriteRender.sprite = sprites[frame];
}
2.2 敌机的产生
上面已经实现了主角飞机的飞行移动,接下来需要在屏幕内随机产生敌机。敌机在屏幕上方自动生成,移动到屏幕下方之后
文档评论(0)