您的位置:首页 > 移动开发 > Unity3D

unity3d开发flappy bird之背景设计(一)

2015-10-24 00:12 344 查看
我记得上一年有一个很热的游戏叫“flappy bird”,这款游戏曾风靡全球。游戏虽小,但难度极高,紧紧抓住了玩家那种求胜通关的欲望,而吸引了更多玩家去挑战难度,真正做到了游戏的精致程度。万万没想到这款游戏的开发到完成仅仅需要4小时,我的天啊,我花了差不多一个晚上才完成了背景的设计和小鸟动画的播放。这就说明了游戏的可玩性并不是用画质和炒作来衡量的。而是游戏的设计模式决定游戏的质量。

好吧进入正题,unity3d不仅仅能开发3D游戏,而且还能做2D游戏。心血来潮,就试试去做呗。我们新建一个3D工程去做2D游戏(并无影响),进入工程第一件事情就是把Main Camera的Projection设置为Orthographic(摄像机的2D投影模式)。然后在Build Setting中选中Android(毕竟做手游)进行Switch Platform,然后就可以在Game视图中根据自己的情况尽情设置游戏的分辨率了。







首先我们创建背景,顾名思义就是添加背景图片。创建一个Quad,这是个单平面模型,我们可以为此添加材质球背景图片,添加完成之后。背景(bg)Reset一下,调整好其适应的屏幕大小和位置。注意:创建的Quad我们不会用到Mesh Collider组件,可以将其删除;图片的Texture Type改为Editor GUI模式;材质球的Shader也改为Unlit / Transparent模式,以后创建材质球图片也是这样设置。这里我已经把一个背景大体设置好了,注意为了让水管(pipe),小鸟(bird),地面(back)能显示在背景(bg)的前面,不与之重叠显示,需要把它们的Position.Z设置为-1。



好下面用脚本来播放小鸟的飞行动画帧,先来了解材质球的显示原理。我们添加材质球的默认显示是这样的

,然后更改材质球的Tiling.X=0.125,这个数值的计算公式是:1
/ 图片动画帧 = 1 / 8 = 0.125。


这样图片就从第一帧开始显示,效果图:

现在就可以用脚本来控制小鸟的动画播放了。

<span style="font-size:14px;">using UnityEngine;
using System.Collections;

public class Bird : MonoBehaviour {
public int frameCount=0;//计算当前第几帧
public int frameNumber=10;//定义每秒10帧
public float timer;//计算帧数
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
timer += Time.deltaTime;
//1帧所用时间为1/10S
if (timer >= 1.0f / frameNumber) {
frameCount++;
timer-=1.0f / frameNumber;
int frameIndex=frameCount%8;//动画一共8帧
//this.material//.renderer
//利用材质的SetTextureOffset方法播放动画帧
this.gameObject.GetComponent<MeshRenderer>().material.SetTextureOffset("_MainTex",new Vector2(0.125f*frameIndex,0));
}
}
}</span>
运行效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息