cocos2dx地圖繪製

本文轉自:http://www.cnblogs.com/cocos2d-x/archive/2012/05/06/2485947.html

遊戲中的地圖是整個遊戲的虛擬場景。通常情況下,手機上的遊戲地圖按照畫面滾動方向可以分爲以下三類:

1)縱向滾動

常見的是打飛機類遊戲,畫面滾動主要是從上至下的模擬正在按照常規速度飛行的飛機。

2)橫向滾動

ARPG類遊戲,主角通過畫面從左至右的滾動來探索未知的世界、消滅敵人、成功過關。例如魂鬥羅、超級瑪麗等等。

3)縱、橫向滾動

RPG遊戲中這種情況最爲常見,主角的一個關鍵任務就是探索一片較大的未知領域:發現敵人、發現特殊位置地點、建築物等。

無論哪種場景,都會涉及到以下問題:

1)移動位置控制:主角在地圖中移動時必須考慮到地圖中物體的阻礙,不能越過牆體,必須通過木橋過河。更加真實的模擬會要求主角在不同的地面上有不同的移動速度:土地上速度一般,冰面上會打滑,停止效果滯後等。

2)地圖的動態變化:主角在遊戲過程中的行爲導致地圖變化。這裏所說的變化是永久的,比如摧毀敵方建築,建立我方建築,修建道路等。而像敵人屍體的腐爛消逝這種臨時變化不在此列。

由此可見,遊戲中地圖編程最主要的功能就是:

1)如何展示一個較大的地圖場景。

2)如何實現地圖對遊戲主角和敵人移動的限制:阻止移動、修改運動效果。

3)如何動態的改變局部地圖的顯示內容。

從本章開始,我們講解cocos2d-x引擎提供的地圖處理機制:CCTMXTiledMap類。

TMX是當前主要支持的地圖格式,你可以使用Tiled Map Editor來生成這種格式的文件。

Tiled Map Editor分Qt版和Java版兩個版本,本文使用Qt版進行講解,知易原文使用Java版。至於更換版本的原因,參見我的前一篇文章《地圖編輯器的選擇1》。

基礎知識

考慮到內存容量、運行效率以及圖像顯示限制等諸多因素,手機上的遊戲多半採用一種叫做瓦片地圖的機制。製作這種地圖時,首先對要繪製的地圖進行分析,將使用到的物件製作成尺寸一致的小圖片,即“瓦片”,然後使用這些瓦片拼接出完整的地圖。

例如下面這幅地圖:

繪製這幅地圖只使用了以下3個瓦片:

這樣一來,使用很少的圖像元素就可以表現一副大尺寸的地圖,大大地減少了內存使用量,提高了遊戲運行效率。

下面就以這幅地圖爲目標,逐步講解Tiled Map Editor的基本使用方法。

實戰演練

1)創建地圖

選擇菜單文件->新文件。

在彈出的新地圖對話框中,選擇地圖方向爲正常,地圖大小爲38 x 30,塊大小爲20 x 20,確定。

2)創建“瓦片”集

選擇菜單地圖->新圖塊。

在彈出的新圖塊對話框中,輸入圖塊的名稱“codes”(不要問我爲什麼起這麼個名字,我也不知道,也許知易是隨便起的吧),並選擇“tileSet.PNG”作爲圖像的來源,確定。

這時,你就可以從窗口右下角的圖塊面板中看到它了。

3)創建圖層

你可以通過圖層面板的“添加圖層”按鈕來創建新圖層。

本例中,我們直接使用系統創建的默認圖層。雙擊圖層列表裏的“塊層 1”,將其重命名爲“tile”,回車。

4)繪製地圖

在開始之前,檢查一下顯示網格的功能是否開啓,它可以幫助我們精準地繪製地圖。

此功能如未開啓,你可以選擇菜單視圖->顯示網格來開啓它。

首先,選擇填充工具,將整張地圖填充爲土地。

然後,選擇圖章刷工具,在地圖上繪製磚牆。

Tiled Map Editor編輯器支持地圖的複製、粘貼操作。所以可以對圖案相同的部分複製、粘貼來加速地圖的製作。

接着,點綴上幾塊鋼板完成整張地圖的繪製。

5)保存地圖

忙活這麼半天了,最後千萬別忘了保存文件。選擇菜單文件->保存,將TMX地圖和用到的圖片資源保存在同一個文件夾下

ps.如果遇到生成的地圖文件無法在cocos2d-x中使用的情況,請檢查編輯器參數設置中的“另存爲數據層”一項是否爲Base64 (不壓縮)、Base64 (gzip壓縮)、Base64 (zlib壓縮)之一。

 

繪製優質地圖的幾點建議

程序員們通常中規中矩,作品就顯得死板而不生動。

本段翻譯自下面的鏈接:

http://wiki.themanaworld.org/index.php/Mapping_Tutorial

  • 在開始繪製之前你應當對整體佈局有大致的規劃,先從紙上畫個草圖,這將對你有所幫助。
  • 避免將橋、山道、走廊之類的阻擋設置爲1個瓦片的寬度,否則很容易卡在這些地方。
  • 不要讓太多相似的物件同屏出現。非常顯眼的瓦片應當有節制地使用。不要讓大片相同的瓦片反覆出現,你可以通過點綴一些不一樣的瓦片來斷開它們。
  • 避免將自然環境畫得太規則。通常,樹不會成排成列地生長。河流、山脊以及洞穴裏的走廊從來都不是筆直的。
  • 地圖不能畫的太功能化。給玩家們一些東西看,即便這對玩遊戲沒什麼幫助。
  • 但是,不要忘了可玩性。

稍作調整,感覺就好多了。

當然,這就要求我們在繪製地圖時要多少有些“藝術細胞”。如果感覺自己沒有這個水平,那就找幫手吧。你身邊肯定會有的,比如那個看見你一回家就趴在電腦前面而很惱火的人。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章