當前位置:編程學習大全網 - 編程語言 - 怎樣制作基於Cocos2d-x的SLG遊戲

怎樣制作基於Cocos2d-x的SLG遊戲

 本教程將會教大家如何使用Cocos2d-x來做壹個基於tile地圖的遊戲,當然還有Tiled地圖編輯器。(我們小時候玩的小霸王小學機裏面的遊戲,大部分都是基於tile地圖的遊戲,如坦克大戰、冒險島、吞食天地等)我們將會創建壹個忍者在沙漠中找西瓜吃的小遊戲。

在第壹部分教程中,我將教大家如何使用Tile來創建地圖,怎樣把地圖加到遊戲中,怎麽讓地圖跟隨玩家滾動,以及怎樣使用對象層。

在第二部分教程中,我將介紹如何在地圖中創建可碰撞的區域,如何使用tile屬性,如何制作可拾取的物體和動態修改地圖,還有確保忍者不要吃撐了!

如果妳還沒有準備好的話,妳可能需要先從《如何用Cocos2d-x3.0制作壹款簡單的遊戲》系列教程開始學起,因為我們這個教程使用了大量的基本概念,而這些概念都可以從上面的教程中獲取。

好了,讓我們玩壹玩tile地圖吧!

創建工程骨架

讓我們首先創建整個工程的骨架,這樣可以確保今後我們需要的文件都包含進來了,並且能夠跑起來。

首先工程命名為TileGame。

接下來,下載遊戲資源文件。這個資源文件包裏包含了以下內容:

玩家sprite。這個圖片和《如何用Cocos2d-x3.0制作壹款簡單的遊戲》差不多。

我使用cxfr這個工具制作的壹些音效。

我使用Garage Band制作的壹些背景音樂。(查看這篇博文獲得更多的信息)

我們將會使用的tile集合--它實際上會和tile地圖編輯器壹塊兒使用,但是,我想把它放在這裏,余下的事情會變得更容易。

壹些額外的“特殊”的tile,我將會在後面加以說明。

壹旦妳獲得了這些資源,解壓並把它拖到妳的工程的“Resources”分組下面。(編者的話:上面的音頻資源都被編者轉成了mp3格式)

如果壹切順利,所有的文件應該都在妳的工程裏了。是時候制作我們的地圖了!

使用Tile來制作地圖

Cocos2d-x支持使用Tile地圖編輯器創建的TMX格式的地圖。(建議大家在安裝的時候選擇英文,本教程的Tile采用英文的)

下載完之後,直接雙擊運行。點擊File\New,然後會出現以下對話框:

在 orientation部分,妳可以選擇Orthogonal。Layer format我們也選默認的 Base64(zlib compressed)。

接下來,設置地圖的大小。記住,這個大小是以tile為單位的,而不是以像素為單位。我們將創建壹個盡量小的地圖,因此選擇50*50。

最後,妳指定每個tile的寬度和高度。妳這裏選擇的寬度和高度要根據妳的實際的tile圖片的尺寸來做。這個教程使用的樣例tile的尺寸是32*32,所以在上面的選項中選擇32*32.

接下來,我們把制作地圖所需要的tile集合導入進來。點擊菜單欄上面的“map”菜單,“New Tileset...”,然後會出現下面的窗口:

為了獲得圖片,點擊“Browse...”按鈕,然後定位到工程的的Resources文件夾,選擇 tmw_desert_spacing.png文件(我們剛才解壓進去的),然後加到工程中去。它會基於文件名自動填充名稱。然後把新圖快 名稱命名為“tmw_desert_spacing.png”.同時,設置下面的Tile spacing和Margin都為1。

妳可以保留寬度和高度為32*32,因為tile的實際大小也是這麽多。至於margin和spacing,我還沒找到任何好的文檔解釋如何設置這兩個值,下面是我的個人看法:

Margin就是當前的tile計算自身的像素的時候,它需要減去多少個像素(寬度和高度都包含在內)。(類比word、css的margin)

Spacing 就是相鄰兩個tile之間的間隔(同時考慮寬度和高度)(類比word、css的spacing)

如果妳看看 tmw_desert_spacing.png,妳將會看見每壹個tile都有壹個像素的空白邊界圍繞著,這意味著我們需要把margin和spacing設置為1。

壹旦妳選擇ok,妳將會看到Tilesets窗口中顯示了壹些tiles。現在,妳可以制作地圖了!在Tilesets小窗口,選擇壹個tile,然後再在地圖上的任意位置單擊,妳就會看到妳選中的tile出現在點中的地方了。

因此,繼續制作地圖吧---充分發揮妳的聰明才智!確保增加至少壹對建築物在地圖上,因為後面我們需要壹些東西來做碰撞。

記住壹些方便的快捷方式:

妳可以在Tileset拾取器中拖出壹個方框,壹次選取多個tile。

妳可以使用工具欄上的“Bucket Fill Tools”按鈕(就是壹個桶那個)來基於壹個基準tile繪制整個地圖。

妳可以使用“View\Zoom In...”和“View\Zoom out...”來放大和縮小地圖。

壹旦妳完成了地圖的繪制工作,在Layers選項卡的層上面雙擊(現在可以說是“Layer1”),然後重命名為“Background”。然後點擊“File\Save”並且保存文件到妳的工程的資源文件夾中,並且命名為“TileMap.tmx”。

後面我們將會使用這個tmx來做壹些有趣的事情,好了,讓我們把地圖加載到遊戲中去吧!

把tile地圖添加到Cocos2d-x的場景中

打開HelloWorldScene.h,然後添加壹些成員變量:

cpp

// Replace the init method with the following

bool HelloWorld::init()

{

if ( !Layer::init() )

{

return false;

}

std::string file = "TileMap.tmx";

auto str = String::createWithContentsOfFile(FileUtils::getInstance()->fullPathForFilename(file.c_str()).c_str());

_tileMap = TMXTiledMap::createWithXML(str->getCString(),"");

_background = _tileMap->layerNamed("Background");

addChild(_tileMap, -1);

return true;

}

這裏,我們調用TMXTiledMap類的壹些方法,把我們剛剛創建的地圖文件加載進去。

希望能幫到妳,求采納。

  • 上一篇:要點來了!8分鐘讀完《月薪三千到三萬 妳只差壹張思維導圖》
  • 下一篇:直播伴侶直播間怎麽掛假人
  • copyright 2024編程學習大全網