使用unity3d制作像素鸟游戏
个人博客文章链接:http://www.huqj.top/article?id=140
unity3d虽然是被设计用来制作3D游戏的,但是它提供了很多2D组件,所以也可以轻松的设计制作2D游戏,下面记录一下制作经典2D游戏flappy bird的过程。下面是最终效果:(github: https://github.com/Scottle-Hu/MyFLappyBird)
一、设计
像素鸟的游戏规则非常简单,就是通过点击或者按键控制小鸟向上飞,场景会随机出现障碍物,碰到障碍物就算输。游戏流程一共需要三个场景:开始场景、游戏主场景、游戏结束场景
在开始场景选择开始游戏按钮加入到主场景开始游戏,主场景中失败后进入到结束场景选择继续或者退出。开始和结束场景都是比较简单的,只涉及一些场景跳转。主要的游戏逻辑在主场景中,涉及小鸟的前进和向上飞控制,以及障碍物的随机出现,另外场景是没有尽头的,也就是随着游戏的进行,背景会不断变长。
二、主场景
下面介绍主场景的搭建和脚本编写过程。
①场景搭建
游戏场景主要就是一个垂直的平面,使用unity自带的Quad组件即可,背景组件的属性如下图:
首先是该背景的位置和旋转度数,和主相机对应即可。为了给背景加上图片,需要使用一个材质球(这里就是图中的bg)
给材质球选择事先添加好的图片即可。除了背景之外,还需要一个天花板和地板,因为当小鸟撞到天花板或者地板的时候也会死,天花板和地板同样使用quad即可,只不过需要水平放置在背景图片的上下,3d透视图如下:
主相机和平行光照就不说了,需要注意的是,背景不能只有一个,需要有三个,其中一个是准备背景,即没有障碍物的背景,还需要两个有障碍物的背景,之所以要有两个,是因为为了实现无限背景,会在小鸟进入一个背景的时候在下下个背景的位置添加一个背景,而不能下个位置因为这样可能会导致刚进入背景的时候右边有空缺。背景上需要有标识过一个障碍物的方块和障碍物,都使用cube组件横截背景实现,并且需要将关卡标识设为透明,障碍物需要加一个材质球贴上图片。障碍物的透视图的属性分别如下:
背景的c#脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
三、小鸟对象
小鸟是游戏控制的主体,负责交互,小鸟的翅膀扇动效果通过纹理动画实现,即给小鸟加上一个材质球,这个材质球的图片设置为一个三个小鸟状态的图片,通过设置图片的偏移量来表示小鸟的翅膀挥动和死亡,如下:
其中Tiling设置图片缩放,Offset设置图片偏移。
小鸟的c#脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
|
以上就完成了小鸟的设计。注意小鸟死亡的判断是撞到tag为“Finish”的刚体,这里把天花板和地板,以及障碍物都设置为"Finish",而通关标识cube的tag设置为"pass",当小鸟穿过"pass"的时候,分数++,分数的显示见后文。
四、UI组件
这里的UI组件比较简单,只有一个分数显示,小鸟每通过一个障碍物,分数加一,使用Text实现显示分数,Text组件的属性如下:
分数组件作为小鸟对象的一个属性,在小鸟穿过障碍物的时候改变。
五、开始和结束场景切换
上面基本完成了主场景的开发,接下来需要加一下开始和结束的逻辑,其实就是场景的切换。
开始按钮点击脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
结束和再来一局点击脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
给按钮添加事件的方法是在属性中设置,如下是开始按钮的事件脚本绑定:
使用unity3d制作像素鸟游戏相关推荐
- 零基础教你Unity制作像素鸟游戏 【文末源码】
爆肝三天终于写完了,一文教你从零开启Unity制作像素鸟游戏 前言 一,新建目录 二,制作材质 三,场景搭建 四,创建地图 五,制作管道 六,创建主角 七,小鸟动起来 八,游戏状态控制 九,摄像机跟随 ...
- cocos creator V1.9 制作像素鸟游戏(1)-场景设计
上次立的flag来实现了.先进行场景的设计,在制作的时候,就发现自己被打脸了.场景设计其实只要三个就可以了,最后一个结束其实在主场景上设置相关的的信息,等到游戏结束的时候再显示出来便可以了.于是,场景 ...
- html5实现像素鸟,有趣的Axure案例:像素鸟游戏的设计
原标题:有趣的Axure案例:像素鸟游戏的设计 这是作者第三次发布有关axure游戏的内容了,相比较前两次而言,此次的设计更加完善,难度相应的也要高很多.游戏基本上已经趋于完整,加入了game ove ...
- 像素鸟 游戏开发教程 FlappyBird Game development tutorial
像素鸟 游戏开发 教程 FlappyBird Game development tutorial 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com ...
- 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目
课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...
- html像素小鸟小游戏,微信小游戏-像素鸟游戏
we_flappybird ##注意: 微信小程序绘图API中drawImage不支持图片裁剪,其实微信是支持裁剪的只是接口没有实现,可以通过修改WAService.js使其支持裁剪. 修改如下: / ...
- python像素鸟游戏
目录 1.引言 2.系统结构 2.1 总体结构 2.2 局部结构 2.2.1 main模块结构 2.2.2 Bird模块结构 2.2.3 Tubing模块结构 3.代码实现 4.实验 5.总结和展望 ...
- 用原生js+html写一个像素鸟游戏
前言: 用html+js+css写一个面向对象板的像素鸟游戏 看一下效果把: 游戏需引用的图片:(右键保存图片) bird.png land.png pipeDown.png pipeUp.png s ...
- 【教程+源码】Java开发经典游戏飞翔的小鸟_Java游戏项目Flappy Bird像素鸟游戏
在飞翔的小鸟游戏中,玩家只需通过点击方向键操纵让小鸟避开绿色管道等障碍物即可继续前进.如果小鸟碰到管道,游戏立即结束. 那么如何用Java编写一款属于自己的飞翔的小鸟游戏呢?其过程并不复杂,本课程详细 ...
最新文章
- Python数据挖掘1:创建一位数组和二维数组,取最大最小值,切片
- java初始化实例化_Java对象的创建过程:类的初始化与实例化
- 【经典书】概率图模型:原理与技术
- 原创 | 大数据时代,应让“抗疫”更科学
- mysql 实验论证 innodb表级锁与行级锁
- nssl1351-矩形反色【离散,差分】
- PoseCNN代码复现CMake编译找不到math_functions.hpp
- 中兴bsc服务器是什么,中兴BSC内部信令流程介绍
- iOS--开发从入门到精通
- Linux下Socket 函数集(四)
- flink checkpoint 重启_Flink进阶教程:Checkpoint机制原理剖析与参数配置
- postfix发送邮件报错:mail for xxxxx.com loops back to myself
- 易经入门V2.0(体系最完整,推荐书目最完备,易经周易入门必收藏)
- Flutter入门系列-VideoPlayer在列表使用
- 阵列matlab程序,阵列信号处理的理论和应用 原书matlab 程序.rar
- 双臂Matlab仿真建模:正运动学
- 利用 UPnP 的反射攻击分析
- android时光轴相册,Android之RecyclerView实现时光轴效果示例
- java两两组合(不重复)
- Redis单机最大并发量