您好,登錄后才能下訂單哦!
本文實踐自 Ray Wenderlich 的文章《How To Make a Tile-Based Game with Cocos2D》,文中使用Cocos2D,我在這里使用Cocos2D-x 2.0.4進行學習和移植。這個游戲是關于一個忍者在沙漠中尋找西瓜的故事。
在這部分內容,將會學習到如何用Tile創建一個地圖,如何加載地圖到游戲,如何讓地圖跟隨玩家滾動,以及如何使用對象層。下一部分內容,將介紹如何在地圖中創建可碰撞的區域,如何使用Tile屬性,如何創建可拾取的物品和動態修改地圖,以及如何確保忍者不會吃撐掉。
步驟如下:
1.新建Cocos2d-win32工程,工程名為"TileGame",去除"Box2D"選項,勾選"Simple Audio Engine in Cocos Denshion"選項;
2.下載本游戲所需的資源,將資源放置"Resources"目錄下;
3.使用Tiled工具制作地圖。首先,下載開源的Tiled Map Editor工具,當前版本為0.8.1,建議使用QT版本。在Tiled工具,點擊菜單欄→"文件"→"新文件",在彈出的對話框中,填入如下內容:
地圖方向分為:正常、45度。地圖大小填入的是tile單位。塊大小是資源每個tile的實際像素大小,在本篇中,使用32x32大小。點擊"確定"。
4.接著,把所需要的tile集合加入到工具中。菜單欄→"地圖"→"新圖塊",填入如下內容:
點擊"瀏覽",選擇"Resources"目錄下的tmw_desert_spacing.png文件,會自動填充"名稱"內容。塊的寬高都為32像素。邊距就是當前tile塊開始計算實際像素時,應該跳過多少像素,寬高一樣。間距就是兩個tile塊之間的像素距離,寬高一樣。看看tmw_desert_spacing.png文件,可以看到每個tile塊都1像素的黑色邊框,這就是為什么要設置邊距和間距為1像素。
點擊"確定"。
5.可以看到tile塊出現在"圖塊"窗口中。現在可以開始畫地圖。點擊菜單欄→"視圖"→"顯示網格",可以開啟網格參照線。點擊工具欄"圖章刷",然后在"圖塊"窗口點選一個tile塊,接著在地圖中,點擊放入你所想要的位置。
用工具欄"填充",把地圖背景填充成同一個tile塊,這里為沙漠背景。可以從"圖塊"窗口點選多個tile塊,可按Ctrl鍵多選,這樣可以一次性將多個tile塊放入地圖中。進行制作地圖,確保至少有一對建筑在地圖上,因為后面需要一些東西來做碰撞。一旦完成了地圖的制作,雙擊"圖層"窗口中的當前層"塊層 1",重命名為"Background"。然后點擊工具欄"保存",命名為"TileMap.tmx",保存在"Resources"目錄下。
6.將Tile地圖加入到場景中。在HelloWorldScene.h文件中,添加如下代碼:
CC_SYNTHESIZE_RETAIN(cocos2d::CCTMXTiledMap*, _tilemap, Tilemap);
CC_SYNTHESIZE_RETAIN(cocos2d::CCTMXLayer*, _background, Background);
在HelloWorldScene.cpp文件中,構造函數添加如下:
HelloWorld::HelloWorld()
{
_tilemap = NULL;
_background = NULL;
}
初始化init函數,修改如下:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 向AI問一下細節
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。 猜你喜歡最新資訊相關推薦相關標簽AI
助 手
青龙|
海丰县|
邯郸市|
清丰县|
中江县|
惠州市|
龙泉市|
芮城县|
蒲城县|
宜章县|
藁城市|
措美县|
额尔古纳市|
施秉县|
舒城县|
华亭县|
和平区|
平顶山市|
巴林左旗|
扬州市|
祁连县|
营口市|
长泰县|
桦甸市|
徐州市|
正镶白旗|
沂源县|
铜梁县|
营山县|
斗六市|
历史|
铁岭县|
奎屯市|
大竹县|
新蔡县|
温州市|
柳林县|
汉源县|
海安县|
清涧县|
新余市|
|