Quick-Cocos2d-x初學者遊戲教程 (七) ----------------------- 製做地圖

Quick-Cocos2d-x初學者遊戲教程7

回顧下上章的內容,上一章咱們在背景層上加了層滾動的 「TMX背景」,但只是提到了 TMX 文件的加載,草草幾筆就被帶過了,因此本着盡職負責(囉裏八嗦)的態度,本章咱們仍是先來了解下 TMX 地圖文件的製做,同時處理背景層上滾動的元素(獎勵品和障礙物)。git

好的,那麼如今囉嗦開始!!!github

TMX 地圖文件的製做

其實吧,TMX 地圖的製做是很是簡單的,在本人以前的教程中也講了好屢次,都說煩了。本想直接跳過的,可是仔細想一下,若是我如今不講,回頭又會被吐槽說教程跳太快,全部仍是乖乖的一一說下吧,就算湊湊篇幅,會用 TiledMap 編輯器的請繞行。編輯器

首先,請打開以前安裝好的 TiledMap 編輯器,並新建一個文件。點擊新建後,會跳出以下的對話框,咱們在這裏設置 TMX 文件的基本屬性。post

map1

地圖方向值建立的地圖的朝向,這裏咱們選擇正常就行,它將爲咱們建立一副直角鳥瞰地圖(90°地圖)。
層格式是指層中的數據怎樣存儲,這裏咱們也選擇默認的。由於地圖的數據通常都有比較大的冗餘,因此利用zlib 能夠獲得很高的壓縮比。
塊大小是指每一個 tile 元件的大小,它須要根據提供的圖塊資源大小來肯定,建議圖塊大小爲32 * 32的倍數。下圖就是咱們的圖塊資源(本身PS的,累成狗,其實根據咱們遊戲的特徵,根本不須要這麼多圖塊的,只是想表達下怎樣作圖塊資源,因此就忍不住PS了一張,感興趣的童鞋能夠感覺下)。ui

ps

這裏每一個圖塊的大小都爲64 * 64,因此咱們把 TMX 的塊大小也設爲64 * 64,不要問我爲何,由於我只能說這樣好拼點。url

地圖大小指橫豎方向上圖塊的多少,也就是表示該新建的地圖中有多少格64 * 64的 tile 元件。
因此這裏咱們根據遊戲的設定——須要一張長長的地圖資源,設置地圖大小爲 300 * 10。設置好後,你會發如今地圖大小屬性欄下面,會輸出最終的地圖大小(19200 * 640)。設計

點擊確認以後,一個空白的遊戲地圖就建立好了,以下圖所示:3d

map2

由於地圖太長,全部你能夠經過右邊的迷你地圖面板來調節地圖的顯示大小(經過鼠標中鍵的先後滾動)和顯示區域。如你建立的地圖無上圖中的網格,你能夠點擊菜單欄的 視圖-》顯示網格 將該功能開啓,這樣能夠方便咱們地圖的製做。對象

接下來在菜單欄中選擇 地圖-》新圖塊 來導入圖塊資源,而後會出現以下所示的對話框:教程

map3

咱們要作的就是點擊瀏覽按鈕,將以前準備好的圖塊文件載入到編輯器,其餘屬性能夠不作修改。

再接着,就是個任性的過程了。在編輯器右下角的圖塊面板中選中相應的圖塊,而後把它拖動到渲染區拼一個本身想要的地圖。例如:

map0

添加對象層

上章,咱們說好要用 TMX 文件來承載遊戲的障礙物和獎勵品的。若是直接以拼圖的方式將這些物品做爲圖塊拼入地圖,這樣不是不可行的,然而有個問題是,若是這些障礙物或獎勵品要求是動態的啦?顯然地,這就不可行了。因此如今問題又來了:咱們該拿它怎麼辦?

別急!我要告訴你,TiledMap 支持對象(Object)和對象組(ObjectGroups)功能,同時Quick 也支持,全部咱們能夠在地圖上建立一個對象層,用對象來標示每一個障礙物和獎勵品的位置。

這裏對象是爲了開發者方便而設計的,它並不對應於某個地圖圖片,只是標明瞭某個位置,這樣開發者能夠經過相關 API 獲取某個對象的位置,從而在相應的位置進行繪製。對象也是能夠有名字的,這樣能夠經過相關 API 經過名字獲得對象。它經常用於添加除背景之外的遊戲元素(如道具、障礙物等)。

而對象組(objectgroup)顧名思義,它只是用來把多個對象包起來並進行分組的一個結構,當對象比較多時,利用它能夠方便管理。

如下是 Cocos 中 TiledMap 的大體邏輯結構:
tmx1
更多細節內容可參考瓦片地圖一文。(呵呵,其實也沒那麼詳細啦!)

接下來回到主題,咱們仍是來爲地圖添加對象層吧。正以下圖所示,咱們在編輯器右上角的圖層面板中新建了一些不一樣的對象層,而後在各對象層中依次添加了一些形狀的對象,意圖用這些對象來表示該位置上對應的障礙物或獎勵品,也就是暫時用這些小方塊小圓圈來代替具體的遊戲實物。在程序中,咱們能夠遍歷指定對象層上的所有對象,而後再在這些對象的座標處建立相應的障礙物或獎勵品,這樣不論是它們是靜態的仍是動態的,均可以很方便的。這裏形狀和大小並沒有太大關係,由於咱們在程序中只須要取對象的座標值。

map4

在製做地圖的過程當中,你能夠勾選圖層前面的選項來決定圖層上的對象是否顯示,這樣能夠避免其餘圖層對咱們產生的視覺干擾,有利於地圖的製做。

如今咱們的地圖就算拼好了,以後須要作的就是把它保存起來,並連同圖塊資源一塊兒拷貝到項目的res/image目錄下,用於遊戲加載了。

這裏要注意的是,.tmx文件與.png資源默認狀況下須要放在同級目錄下,如需修改,能夠打開.tmx文件修改路徑。 對象組(ObjectGroups)中的對象(Object)在TMX文件中以鍵值對的形式存在,所以咱們也能夠直接在TMX文件中對它進行修改。

tmx

此時運行遊戲,你就能夠看到本身拼的地圖在遊戲中緩緩滾動了(PS:對象層的對象在遊戲中是不可見的,因此看着效果不明顯)。

資源我已放到Github倉庫,你們能夠下載下來跟着作作,相應的資源後續章節中咱們還會持續更新。

轉載請註明出自:http://shannn.com/archives/411

相關文章
相關標籤/搜索