1. 程式人生 > >Unity開發2D遊戲之遊戲背景的移動

Unity開發2D遊戲之遊戲背景的移動

在很多的2D橫版遊戲中,遊戲背景都是不斷地移動的,讓人看起來好像是有無限長,但其實都是由幾個背景圖片拼接而成的,接下來我們就來說說怎樣才能實現這樣的效果

首先準備幾張背景圖片,背景圖片的大小要一致。比如下面這樣:


我們將每張圖片的長度用length來表示,三張圖片總的長度用total_length來表示。total_length=3*length

將三張圖片都放入場景中,並且讓每張圖片都充滿整個場景(這樣做的目的是移動圖片時不會出現斷層的現象)

並排放置三張圖片,就像上面那樣。

接下來建立一個指令碼,叫做BgControll,在每個背景圖片上都新增一個BgControll指令碼

在指令碼中的Updata函式中寫上這樣的程式碼:

        Vector3 bgPosition = this.transform.position;
        Vector3 cameraPosition = mainCamera.transform.position; // mainCamera是相機的位置
        if (bgPosition.x + total_length / 2.0f < cameraPosition.x)
        {
            bgPosition.x += totalLength;
            this.transform.position = bgPosition;
        }
1、獲取到背景圖片當前的位置。

2、獲取到相機當前的位置。

3、判斷相機的位置是否到了三張圖片的中心的(例如上面矩形的中心位置),如果是,則將該背景圖片移動到另外兩張圖片的後面。由於每張圖片上都綁定了BgControll指令碼,所以就能保證背景的迴圈

經過這幾個步驟後,就能實現背景跟隨攝像機的移動而移動了。

如果想多放幾張背景圖片,可將上面程式碼中的total_length改變成 n*length,n就是背景圖片的張數,然後判斷條件改成

if(bgPosition.x + total_length/n < cameraPosition.x)
{
    ...
}

注意total_length和n至少要有一個是float型資料


讀者可以在Camera上繫結一個指令碼,讓Camera向右移動,看背景是否始終在視野範圍中。

相關推薦

Unity開發2D遊戲遊戲背景移動

在很多的2D橫版遊戲中,遊戲背景都是不斷地移動的,讓人看起來好像是有無限長,但其實都是由幾個背景圖片拼接而成的,接下來我們就來說說怎樣才能實現這樣的效果首先準備幾張背景圖片,背景圖片的大小要一致。比如下面這樣:我們將每張圖片的長度用length來表示,三張圖片總的長度用tot

Unity&2D】使用Unity製作2D畫素遊戲用到的使用外掛

建議大家能夠熟練使用這些軟體後,再決定買正版。 接觸的這些個軟體,都是隻能對單個精靈進行變化。 不支援紙娃娃, 精靈變色的外掛 2DxFX 2D畫素特效 這些個特效外掛,比較試用與2D畫素特效。畢竟特效不像紙娃娃 Day and Night Cycle

Unity開發詳解新建工程(1/6)

最近學習unity做了一個簡單的FPS遊戲,下面分幾篇講述下使用到的功能。 新建工程 在開啟unity會讓你選擇一個工程開啟,進入程式後,如果我們想建立一個新工程通過 File -->New Project 建立,新開啟的介面經常會出現白板情況,不顯示建立對話方塊

Unity遊戲開發】toluawrap文件的原理與使用

nop 微信 attr hiera n) 接下來 system 作者 prim   本文內容轉載自:https://www.cnblogs.com/blueberryzzz/p/9672342.html 。非常感謝原作者慷慨地授權轉載,比心!@blueberryzzz

cocos2d x遊戲開發系列教程 坦克大戰遊戲虛擬手柄控制坦克移動

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Unity遊戲開發】toluawrap檔案的原理與使用

    本文內容轉載自:https://www.cnblogs.com/blueberryzzz/p/9672342.html 。非常感謝原作者慷慨地授權轉載,比心!@blueberryzzz 是位大神,歡迎大家關注他的部落格。馬三對原文的排版與結構做了微調,以便更合適閱讀。

Unity-Slua使用MVC設計思想開發2D遊戲

        架構是神奇的,為解決需求頻繁變更可以更好的應對。設立規則,開發人員共同去遵守,約定俗成,從而完成一個維護性強的產品;架構也是抽象的,將設計模式作為元件實現一個高內聚、低耦合的適合於產品的流程。         設計架構是為解決某種問題而生的,最重要的還是思想。

Unity設計模式-Unity3d遊戲開發設計模式子類沙盒模式

** 請關注微信公眾號獲取最新訊息 ** 原文連結:http://blog.csdn.net/u013108312/article/details/52208635 本篇文章我們來看下Unity3d遊戲開發設計模式之子類沙盒模式,下面開始,積累提

Android 遊戲開發主角的移動與地圖的平滑滾動(十五)

程式碼的實現方式       還是以人物向右移動為例,我們須要三個座標 一個是m_HeroPos 來儲存人物在地圖中的X座標  一個是 mScreenPos 來儲存人物在螢幕中的顯示座標 mMapPos 來儲存地圖在手機螢幕中的顯示座標,按鍵盤右鍵後人物在地圖中的座標加上8畫素(表示行走的步長),當人物的座標

【VC++遊戲開發#五】2D篇 —— 遊戲二:看看你能堅持多少秒

我的郵箱:[email protected]    歡迎大家和我交流程式設計心得前段時間在網上看見了一個小遊戲——看看你能堅持多少秒——考你的敏捷性,我玩了幾次,然後居然超過了18秒事後,我用MFC模擬了該遊戲中方塊"撞牆反彈"的效果——撞牆反彈效果今天呢,我就繼續

Unity3D中開發2D遊戲——簡單控制物體移動

在Unity3D中開發2D遊戲簡單實現物體的上下左右移動1.簡單實現物體的上下左右移動(左前右前)掛到物體下(本人學習過程中所記筆記 給像我一樣的新人提供方便)2.如何正確顯示物體移動時方向定義public精靈陣列tankSprite[]實現按下方向鍵同時顯示物體的正確方向

unity 關於2D遊戲物體的轉動與朝向與移動(攝像機)

如果你想做的是UI或者是2d遊戲物體的的朝向   可以使用這個 this.transform.eulerAngles = new Vector3 (0, 0, (角度));  如果你有兩個遊戲物體之間的座標   則可以使用遊戲座標之間的差值。從而計算出兩個座標之間的向量

Coco2d-x 塔防遊戲“賊來了”開發簡檔

遊戲開發 uml 塔防遊戲 賊來了 原來的教程為《塔防遊戲之賊來了》(這是我之前學習Cocos2d-x時候,看到的一個比較好的教程)原文地址目前只在泰然網看到,http://www.tairan.com/archives/6413 ,原作者為任珊。本文是基於這個教程,而編寫的遊

Coco2d-x 塔防遊戲“賊來了”開發簡檔

遊戲開發 uml 塔防遊戲 賊來了 原來的教程為《塔防遊戲之賊來了》(這是我之前學習Cocos2d-x時候,看到的一個比較好的教程)原文地址目前只在泰然網看到,http://www.tairan.com/archives/6413 ,原作者為任珊。本文是基於這個教程,而編寫的遊戲開發簡檔,有了這

Coco2d-x 塔防遊戲“賊來了”開發簡檔

遊戲開發 uml 塔防遊戲 賊來了 原來的教程為《塔防遊戲之賊來了》(這是我之前學習Cocos2d-x時候,看到的一個比較好的教程)原文地址目前只在泰然網看到,http://www.tairan.com/archives/6413 ,原作者為任珊。本文是基於這個教程,而編寫的遊戲開發簡檔,有了這

Coco2d-x 塔防遊戲“賊來了”開發簡檔 三(完結)

遊戲開發 uml 塔防遊戲 賊來了 原來的教程為《塔防遊戲之賊來了》(這是我之前學習Cocos2d-x時候,看到的一個比較好的教程)原文地址目前只在泰然網看到,http://www.tairan.com/archives/6413 ,原作者為任珊。本文是基於這個教程,而編寫的遊戲開發簡檔,有了這些圖表,

Unity 5實戰 使用C#和Unity開發多平臺遊戲pdf

name clas position ati 下載地址 組件 inspector ins over 下載地址:城通網盤 作者簡介編輯 Joseph Hocking是一位交互式媒體開發方面的軟件工程師。他就職於Synapse Games公司並在芝加哥哥倫比亞學院教授遊戲開發

java 2D過氣遊戲類的寫法

speed graphic 坐標 對象 做成 ted ack todo img 2D遊戲中各對象的父類 package cn.littlepage.game; import java.awt.Graphics; import java.awt.Image; impo

cocos2d x遊戲開發系列教程 坦克大戰遊戲子彈的碰撞檢測處理

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

cocos2d x遊戲開發系列教程 坦克大戰遊戲坦克和地圖碰撞的檢測上

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!