像素鸟简单的背景设置_01

来源:互联网 发布:asp.net crm系统源码 编辑:程序博客网 时间:2024/05/18 01:27

【注】源码下载地址http://download.csdn.net/detail/yy763496668/9838697
我们在玩的像素鸟的时候,我们控制的小鸟并没有移动,而是后面的背景在循环的滚动。后面的背景就是两张精灵在循环的利用,比如第一张图片在我们视野范围内的时候,我们就需要将第二张图片紧随其后的放在第一张的后面。当第一张图片消失在我们的视野范围的时候,我们就可以将第一张放在第二张的后面。
根据以上的思路我们有两种实现的方式:
第一种使用动画
第二种使用代码
我们这篇博文说的就是第二种
首先我们创建一个空物体命名为Ground在空物体上添加SpriteRenderer并选择Sprite为GrassThinSprite
其次给Gound添加Box collider 2D ,我们可以看到碰撞器的宽度就是北京图片的宽度见 Size.X,我们可以通过设置Size.Y的值调整碰撞器的大小。通过设置offset来调整碰撞器的偏移量。
然后给Gound添加刚体Rigidbody2D 设置BodyType 为Kinematic 否则在放置第二张北京图片的时候会有物理作用力,两张北京图片之间会有空隙。
这里写图片描述
以上内容设置好后,我们开始写脚本:
以下脚本是用来重设北京图片的,具体的脚本解释看代码注释

using System.Collections;using System.Collections.Generic;using UnityEngine;public class ResetBackGround: MonoBehaviour {    //自身碰撞器的长度    private BoxCollider2D groundCollider;    //地面的长度  其实就是图片的长度    private float groundHorizontalLength;    // Use this for initialization    void Start () {        //获取自身的碰撞器        groundCollider = transform.GetComponent<BoxCollider2D>();        //碰撞器的长度就是地面的长度        groundHorizontalLength = groundCollider.size.x;    }    // Update is called once per frame    void Update () {        //计算发生偏移的位置        if (transform.position.x<-groundHorizontalLength)        {            //满足条件,就发生偏移            RepositionBackGround();        }    }    void RepositionBackGround()    {        //计算重置背景图片时的位置和重置后的位置之间的偏移量        Vector2 groundOffSet = new Vector2(groundHorizontalLength * 2.0f, 0);        //重置图片后的位置        transform.position = (Vector2)transform.position + groundOffSet;    }}

以下的脚本是用来控制背景图片的移动的,这个脚本在后面的柱子的移动也会使用到

using System.Collections;using System.Collections.Generic;using UnityEngine;public class MoveObject : MonoBehaviour {    private Rigidbody2D m_rigidbody;    // Use this for initialization    void Start () {        //获取自身的刚体        m_rigidbody = GetComponent<Rigidbody2D>();        //设置刚体的速度        m_rigidbody.velocity = new Vector2(-1.5f, 0);    }    // Update is called once per frame    void Update () {    }}

背景的设置先介绍到这里,如有瑕疵,多多指教!

0 0
原创粉丝点击