基于Unity3D的飞行小鸟游戏的设计与实现
2018-01-04程媛
程媛
摘要:随着数字化、科学化信息的发展,移动设备的普及,人们生活质量的提高,手机游戏在手机上占据了一定比例。该文主要通过Unity3D游戏制作引擎作为开发工具,详细描述了简单的飞行小鸟游戏的设计思路和实现方法。该游戏共包含3关,由易到难,控制一只不断往下掉的小鸟,按空格来飞升一小段距离并不停地穿越前面水管的空隙,碰到水管或掉在地面都会死亡。
关键词:手机游戏;Unity3D;飞行小鸟;场景设置
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)30-0065-02
Abstract: With the development of digital and scientific information, the popularization of mobile devices and the improvement of people's quality of life, mobile games account for a certain proportion of mobile phones. This paper mainly USES Unity3D game production engine as the development tool, and describes in detail the design idea and implementation method of the simple flying bird game. This game consists of 3 levels, from easy to difficult, control a constantly falling bird, according to the space to fly a short distance through the gap in front of the pipe, hit the pipe or fall on the ground will die.
Key words: mobile phone game; Unity3D; Flappy Bird; scene setting
1 背景
手机游戏日趋大众化,越来越多的手机游戏涌现。游戏种类繁多,例如动作游戏,冒险游戏,策略游戏,模拟游戏,角色扮演类游戏,这些游戏都需要考验人的操作和动脑动手能力。有很多人工作之余只想休闲放松一下,再玩复杂需要动脑的游戏觉得辛苦。因此开发一个操作不太复杂,配合对应的音效让玩家在游玩时感到轻松愉快的游戏很有意义。
2 Unity3D技术
Unity,也称Unity 3D,是近几年非常流行的一个3D游戏开发引擎,它的特点是跨平台能力强,支持PC、Mac、Linux、网页、IOS、Android等几乎所有的平台,移植便捷。在手机平台Unity几乎成为3D游戏开发的标准工具。而且Unity3D本身就自带有压缩处理以及导出功能,在完成制作后即可进行导出运行。Unity3d格式处理后能够导出的可执行文件为exe (pc版格式),或者apk (手机客户端),导出后即是一个应用程序,点击即可运行,且不耗用内存。游戏界面采用简单的Button控件设罝,效果清晰直观,用户使用时容易上手。
3 设计方案
3.1 关卡设计
游戏关卡总共有3关,根据游戏的难易程度由易到难,每关都不尽相同,关卡会有设计条件,达到通关条件即可进入下一关,在游戏过程中我们可以按下ESC开关游戏声音和暂停或者退出游戏,在失败情况下可点击继续游戏从该关卡开始重新闯关。
3.2 游戏资源及角色对象设计
1)准备游戏资源:获取FlappyBird的贴图资源和音效资源。
2)设置游戏场景:为了区分场景的层次(主要是用来决定图层的顺序,sorting Layer的功能)以及编码的需求,建立一些tag sorting Layer和Layer。先点击Unity编辑器右上方的Layers下拉菜单并选择"Edit Layers..."
3)移动的道路以及障碍:一格道路有两个障碍,障碍由上下两根水管组成,仅中间可通过,场景中用两格道路来反复循环(当一格道路移出屏幕后就重新调整位置,等待下一次出现在屏幕上),达到不断移动的效果。
4)准备游戏Player:首先小鸟有个飞行的帧动画,在sprite文件夹下的atlas中,选择三个帧,直接拖动到场景中,unity自动形成了一个带有帧动画的sprite。
5)游戏开始页面:欢迎页面有个小鸟的动画,并且能够响应触摸后开始游戏(在isReady.cs中实现)。小鸟的动画就是上下摆动的过程,选择小鸟,然后在Animation界面中,添加Position属性等其他属性。
6)生成的游戏障碍:将上下水管组合到一个游戏体里,代码里建一个生产器,每隔几秒钟,随机出现上下间隔距离不等的障碍。
7)游戏主角得分与死亡:在障碍间隔中间建一个钢体,当主角通过时,系统便在分数上加上一,并记录上最高分,当出现更高分数时,变刷新最高分。当主角触碰障碍物或掉落地面时,便游戏结束。
8)游戏声音:在通过不同素材声源的剪切,剪切出几段短暂的声音,当主角死亡时便播放声音。
4 功能实现
4.1 设置游戏场景
开始界面只是简单的通过添加背景音乐和设计两只飞行的小鸟进行布置,玩家可通过点击开始游戏按钮进行游玩。之后进入游戏界面会出现一个下落的小鸟,玩家需要通过操控使小鸟避免落地或者撞上障碍物。
4.2 游戏界面
设置上下两个板块,加入碰撞,便是小鸟在范围内进行活动,不会因为飞得过高或者过低飞出屏幕,在达到顶部或落地便游戏结束。玩家可通过按下空格键来使小鸟上升以躲避障碍物,主角的翅膀拍打动画通过切割再用不同帧翅膀角度的变换达到拍打的效果。
4.3 障碍物生成
游戏内将上下水管组合到一个游戏体里,代码里建一个生产器进行随机生成障碍物以阻碍玩家通关,玩家可通过操控小鸟进行躲避。
4.4 结束界面
通關游戏即可达到结束界面,并且会播放结束鼓掌音效。玩家可通过点击按钮结束游戏或者重新游戏。
4.5 暂停界面
玩家可以通过按下ESC弹出暂停界面进行暂停,可以开启或者关闭声音,退出游戏和继续游戏。
5 结束语
该文所设计的游戏相对较简单,通过unity 3d软件和编程工具的结合可以轻松创建各种3D模型,模拟模型动态以及插入互动内容。该游戏涉及主角的创建、场景的绘制、场景移动控制、障碍物生成器等内容,由于篇幅关系没有说明的更详细,只是把游戏的整个设计实现思路简单的阐述出来。该游戏项目还有很多不足之处可以进一步改进,比如可以拥有一些道具,通关记录,以及对应的排名、以及增加其他模式等,有待作者进一步开发去实现。
参考文献:
[1] 金玺曾. Unity 3D/2D 手机游戏开发[M]. 北京: 清华大学出版社, 2014.
[2] 张帆. Unity3D游戏开发基础[M]. 杭州: 浙江工商大学出版社, 2013.
[3] 张天骥. Unity 3D游戏特效制作典型实例[M]. 北京: 人民邮电出版社, 2017.
[4] 姜雪伟. Unity 3D实战核心技术详解[M]. 北京: 电子工业出版社,2017.
[5] 朱玉. 基于Unity3D漫游系统的设计与研究[J]. 信息安全与技术, 2014(12).
[6] 蒋元, 蔡胜军, 何绍勇, 等. 基于Unity3D的虚拟地理环境构建[J]. 现代计算机: 专业版, 2014(3).
【通联编辑:谢媛媛】