您好,登錄后才能下訂單哦!
本文實踐自 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
助 手
军事|
正安县|
洮南市|
容城县|
宁国市|
绥棱县|
昌平区|
神农架林区|
昭通市|
临汾市|
江川县|
镇江市|
东方市|
阿巴嘎旗|
苍溪县|
靖江市|
三穗县|
军事|
遂昌县|
缙云县|
荆门市|
鄱阳县|
邻水|
台南市|
彭水|
满城县|
新建县|
延津县|
瑞安市|
台州市|
中阳县|
巴彦淖尔市|
泰来县|
赤城县|
八宿县|
大安市|
台南县|
芦溪县|
玛曲县|
滕州市|
江达县|
|