Flappy Bird 交互式三维虚拟系
统
设计与制作
姓 名:
组 内 人 员 分 工:实现 建模 后期
组 内 人 员 贡 献:(35%)(35%)(30%)
课 程 名 称:多媒体技术应用
指 导 教 师:
2018 年 11 月
目录
1.1 设计目标.............................................................................................................1
1.2 设计方案.............................................................................................................1
1.2.1 故事梗概..........................................................................................................1
1.2.2 创作环境选择与构建......................................................................................1
1.3 场景规划.............................................................................................................3
1.4 角色创造.............................................................................................................3
1.5 实现.....................................................................................................................4
1.5.1 创建背景..........................................................................................................4
1.5.2 创建小鸟模型..................................................................................................8
1.5.3 添加碰撞体....................................................................................................10
1.5.4 主菜单控制....................................................................................................12
1.5.5 音效控制........................................................................................................12
1.6 后期...................................................................................................................15
1.7 心得和感想.......................................................................................................19
1.8 参考文献...........................................................................................................19
1
一、Flappy Bird
摘 要: 本次项目主要实现了一个完整的 Flappy Bird 游戏的开
发过程,包括游戏的开始、游戏进行的音效、计分、记录最高分
以及游戏的终结等功能。游戏的开发基于的软件是 unity 5,使用
C sharp 作为开发语言进行开发。游戏采用的音效加工为 .ogg 文
件,以将文件最小化压缩。在游戏开始、起飞、撞击、得分、死
亡处分别加上音效,使游戏更加完整。
1.1 设计目标
本项目旨在实现一个较为完整的 Flappy Bird 游戏开发,实现游戏的
开始、游戏进行时的音效控制、计分、记录最高分以及游戏的终结等功
能。在游戏开始后,如果游戏未结束则镜头一直向前推进;在游戏的开
始、小鸟起飞、撞击柱子、得分以及死亡处分别添加音效以使游戏更加
完整;在游戏结束后统计得分以及记录游戏最高得分。通过游戏的开发
更加深入的了解 unity 中的组件、光线、镜头的推进、材质的使用以及图
片的加载等功能。
1.2 设计方案
1.2.1 故事梗概
点击 start 键游戏开始,小鸟以一定的初速度起飞。重力的作用下小
鸟会下降,为了不让小鸟落地,点击鼠标左键让小鸟再次飞起。在游戏
中有随机生成位置的柱子,上下两个柱子之间留有整个背景高度的五分
之一的距离以使小鸟飞过。通过小鸟重力的下降以及鼠标左键点击让小
鸟飞起来控制小鸟的高度,以使小鸟能够从上下柱子中间的空隙穿过。
当小鸟从空隙穿过得分加一,穿过一根柱子后镜头向后推进穿过另一根
柱子,以此类推,直到小鸟死亡。不管小鸟撞击上柱子还是下柱子,小
鸟都会死亡。所以小鸟一旦撞击柱子,则意味着游戏的结束,再次点击
鼠标左键小鸟不会有任何反应。当游戏结束后再次点击游戏开始,则小
鸟复活游戏再次开始。
1.2.2 创作环境选择与构建
2
该项目的开发基于的软件是 unity 5,使用 C sharp 作为开发语言进行
开发。进行游戏开发的软件有很多,如:UE4、U3D 等,这里选择 unity
中的 5.6.6 版本进行开发。UE4 开发简单,容易上手,少量的代码或者使
用只使用 UE4 的工具而不编写一句代码就可实现一个游戏的开发。但是
UE4 的功能较为简单,没有对于光线、材质等的较好的处理。而 unity 有
很多相比于 UE4 更加强大的功能。unity 对于光照的处理已经十分接近现
实生活,同时它内部还带有很多实际已经开发出来的模型供我们参考使
用。所以选择的开发平台是 unity。unity 支持的代码为 C sharp,所以书
写 C sharp 代码对加入的组件进行控制。
选择了开发工具后,根据一般项目的开发目录,在 assets 下建立自
己的开发目录,目录结构如下:
图 1.1 目录结构图
其中 Audios 用于存储使用的音效;Materials 用于存放在游戏开发过
程中使用的材质;Prefabs 用于存放创建的 prefab(当场景中有大量相似
的物体时,可以将该物体设置为 prefab 进行统一管理,这样当需要修改
物体属性时,只需要修改一个物体,然后 apply 给 prefab 其他的物体,其
他物体也就一起修改好了);Scenes 用于存放创建的场景;Scripts 用于
存放为控制组件编写的脚本;Textures 用于存放游戏使用的素材等。
建立完目录整个游戏的基本框架就算基本完成,在目录的指导下完
成相应游戏的开发。
3
1.3 场景规划
在 scenes 目录下创建 scene 场景,该场景实现整个游戏的开发。首先
创造背景,在背景的上下分别添加一根柱子,两根柱子中间留有一定的
空隙,这个空隙的大小为整个背景长度的五分之一。将两个柱子合并封
装成一个 prefab,所以这两个柱子以后便是一个整体。在背景的中间放
置一个这样的 frefab,在背景的右边缘放置一个这样的 prefab。这样一个
背景中就有两个上下柱子。一个主背景建立完成,由于游戏在结束前为
无限制向前推进,所以通过建立三个同样的 bg,将前面的 bg 移动到后端
以实现向后推进。
背景建立结束,还需要有游戏的主角——Bird。小鸟穿过依次背景
中的柱子。当小鸟顺利重空隙中飞过,则得一分;如果小鸟撞击到柱子
上,则小鸟死亡,游戏结束。
1.4 角色创造
Flappy Bird 游戏的主角是 Bird。通过查找素材,找到了有三个 Bird
的图片,图片如下:
图 1.2 Bird
在游戏中只需要一只 Bird,所以需要对图片的显示进行处理。在
uinty 中的处理如下:
图 1.3 Bird 处理