Unity 两张背景的切换平移

两张背景图片向左移动,当屏幕看见的时候. 使用的是Unity自带的Sprite,当然也可以使用NGUI Sprite

using UnityEngine;
using System.Collections;

/**
 *两个背景图片平移
 */
public class BackgroundController : MonoBehaviour {

    public SpriteRenderer back1;
    public SpriteRenderer back2;
    public Sprite [] textureList;           //背景图片集合
     public int speed = 1;                   //背景平移的速度
     public Transform endPosition;           //到达该位置,把背景移动到开始位置
     public Transform startPosition;         //背景从开始位置移动到结束位置

    private int backIndex;                  

    void Start()
    {
        back1.sprite = textureList[0];
        back2.sprite = textureList[1];
        backIndex = 2;
    }

    void Update()
    {
        if (backIndex >= textureList.Length)
        {
            backIndex = textureList.Length - 1;
        }

        //两个图片的平移
        back1.transform.position = new Vector3(back1.transform.position.x - speed * Time.deltaTime, back1.transform.position.y, back1.transform.position.z);
        back2.transform.position = new Vector3(back2.transform.position.x - speed * Time.deltaTime, back2.transform.position.y, back2.transform.position.z);

        //到达结束位置,回到开始位置,切换图片
        if (back1.transform.position.x <= endPosition.transform.position.x)
        {
            back1.transform.position = startPosition.position;
            back1.sprite = textureList[backIndex];
            backIndex++;
        }

        if (back2.transform.position.x <= endPosition.transform.position.x)
        {
            back2.transform.position = startPosition.position;
            back2.sprite = textureList[backIndex];
            backIndex++;
        }
    }

}
时间: 2024-12-19 10:32:28

Unity 两张背景的切换平移的相关文章

解决两张背景图轮换过程中出现缝隙的问题

横版游戏中有用到多张图片轮番显示作为动态背景.但我在实际项目中,发现图片在滚动时有可能出现缝隙,影响了游戏体验.经过分析,这是因为重置缓冲图片时产生了时间差. 轮番显示的原理就是一张图片滚动,另外一张作为缓冲,滚动出屏幕的图片继而替补成为缓冲,这样周而复始地轮换下去. 举一个例子: void TestSprite::onEnter() { CCLayer::onEnter(); CCActionInterval *move1 = CCMoveBy::create(5, ccp(-480, 0))

两张图切换

<h2>两张图变换 无过度效果</h2> <img class="circle" src="images/1-1.jpg" border="0" onmouseover="this.src='images/1-2.jpg'" onmouseout="this.src='images/1-1.jpg'"/> 2. <div class="inner"

任意两张带透明图像的一种形状过渡效果

一直想要一个Flash 那种形状渐变效果,这两天苦思冥想了一番实现了,先看效果. 一开始是往把贴图alpha通道识别成路径,建模想办法拉顶点的方向去,想来想去不是个好办法,后来还是决定直接基于位图实现,尽量采用gpu可以处理的方式. 然后往这边思考后,脑子里就浮现出了ditance field 这个概念,alpha表达的还是颜色,直接插值alpha会呈现出颜色渐变的结果. 而distance field 反映的是离边的远近,插值他就会呈现出每个像素离边的距离的变化. 确定方案后就是实现了. 我采

cocos2dx 3.x(一张背景图实现循环轮播)

1 // 2 // MainScene.hpp 3 // helloworld 4 // 5 // Created by apple on 16/9/19. 6 // 7 // 8 9 #ifndef MainScene_hpp 10 #define MainScene_hpp 11 12 #include <stdio.h> 13 #include "cocos2d.h" 14 using namespace cocos2d; 15 //定义一个场景类 16 17 cla

一台电脑两张网卡实现不同网段同时访问

因为公司网络结构的原因,现在分成内外两个局域网,所以决定搞两个网卡,一台电脑上使用,下面是方法: 有192.168.1.0/24和192.168.100.0/24两个网段.其中网关分别为192.168.1.1和192.168.100.1. 实现目标:通过192.168.1.1进行上网,且可以访问192.168.1.X网内主机,可以访问192.168.100.X网内主机. 配置方法:将两张网卡分别连接到网线.将其中一张网卡的按照正常的配置, IP:192.168.100.a  netmask.DN

mysql将一张表拆分两张表来使用

"SELECT n1.id, n1.nav_name, n1.nav_info, n2.id iid, n2.nav_name nnav_name FROM cms_nav n1 LEFT JOIN cms_nav n2 ON n1.pid=n2.id WHERE n1.id='$this->id' OR n1.nav_name='$this->nav_name' LIMIT 1" 中国军事 id=26 它的 pid=1 通过pid=1找到他的主类, id=pid=1 id

thinkphp + easyUI 不能同时打开两张数据表?

两个linkbutton分别打开一个数据库中不同的两张数据表 现在单独打开两个是可以正确显示的. 但是如果打开了一个linkbutton1,不关掉tabs中对应的linkbutton1,再打开linkbutton2,这时linkbutton2 显示不了数据,但是如果关掉linkbutton1,再打开linkbutton2,是可以正确显示的. 求解 --------解决方案-------- 这是不可能的!thinkphp 每个表是一个对象,不可能出现你说的现象

mysql高效获取两张表共同字段的交集数据

问题: 例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher A出版社也为很多人出版了书籍,B出版社也为很多人出版了书籍,有sql语句找出这两个出版社为那些人 共同出版书籍,用innerjoin太慢,有没有什么更好的办法? 解答一: 由于不知道你表的索引情况,至于用join还是in和exists不太好说,理论上讲,exists最快.in次之.join

CROSS JOIN连接用于生成两张表的笛卡尔集

将两张表的情况全部列举出来 结果表: 列= 原表列数相加 行= 原表行数相乘 CROSS JOIN连接用于生成两张表的笛卡尔集. 在sql中cross join的使用: 1.返回的记录数为两个表的记录数乘积. 2.将A表的所有行分别与B表的所有行进行连接. 例如: tableA r1 r2 A B C D tableB r3 r4 1 2 3 4 select * from tableA cross join tableB; return: r1 r2 r3 r4 r1 r2 1 2 r1 r2