當前位置:編程學習大全網 - 人物素材 - 如何基於Cocos2d-x制作SLG遊戲

如何基於Cocos2d-x制作SLG遊戲

創建項目

如果要說環境建設,那就長篇大論了,這裏就不說了。不確定的話,網上問問度娘,會有很多不同系統不同版本的結果。

Cocos2d-x創建項目的方式是不斷變化的,所以我覺得有必要在這裏介紹壹下如何創建項目。

創建壹個3.2項目其實很簡單。打開壹個終端(對於Windows為cmd),進入引擎文件夾目錄,然後輸入以下命令來創建它。

cocos new SLG-p com . cocos 2 dx . RS-l CPP-d/Users/cocos 2d-x/workspace/cocos 2 dx/cocos 2d-x-3.2/projects

如下圖所示:

p1

描述:

在new之後:new是項目名稱。

-p:-p後跟包名。

-L: After-L是語言(cpp的意思是c++)。

-d:-d後面是項目生成路徑。

如果壹切正確,等待幾分鐘後,您可以在給定的目錄中找到新項目。打開項目後,我們就可以開始制作遊戲了。

預備準備

打開項目運行程序後,妳會發現它並不是壹個空項目。Cocos2d-x在類和資源文件夾下給出了壹些實質性的東西。當然,這些不壹定有用。它們的存在是為了向我們展示Cocos2d-X的壹個典型例子。

除了文件AppDelegate.h和AppDelegate.cpp之外,這兩個文件夾中的其他內容都可以刪除(不過刪除之前可以先看看HelloWorld類,了解壹下它的類結構和類方法,以便對Cocos2d-x做壹個初步的學習,方便初學者根據葫蘆畫瓢寫出壹個類似的場景)。AppDelegate類是創建項目時自動生成的類。它控制著遊戲的生命周期,是Cocos2d-x遊戲的通用入口文件,類似於壹般Windows項目中主函數所在的文件。

打開AppDelegate.cpp文件,我們可以在遊戲加載周期的最後壹個函數中設置第壹個開始的遊戲場景,如下:

auto scene = games scene::create scene();

導演-& gt;runWithScene(場景);

game scene是壹個新的遊戲場景,下面會解釋。

分辨率適應

在我的遊戲裏,首先要做的就是改編分辨率,這是壹個不變的定律。現在,市場上有許多不同屏幕尺寸和分辨率的移動設備。為了更好地適應這些設備,有必要調整遊戲的分辨率。

在農場遊戲中,最重要的是拖動大地圖的背景,放大縮小,所以可想而知,我們的地圖並不是都顯示在屏幕上,也就是說,我們不能像以前那樣對整個顯示內容進行適配,要留壹定的余量給玩家拖動。如下圖所示:

p2

同樣在applicationDidFinishLaunching函數中,我們添加了以下代碼來適配遊戲的分辨率,使其能夠更好地適應不同的運行環境。

GL view-& gt;setDesignResolutionSize(480.0f,320.0f,ResolutionPolicy::FIXED _ HEIGHT);

STD::vector search path;

search path . push _ back(" H _ 1920 ");

FileUtils::getInstance()-& gt;setSearchPaths(搜索路徑);

導演-& gt;setContentScaleFactor(1440.0 f/320.0 f);

分辨率適配的原理,建議妳看壹下:Cocos2d-x多分辨率適配完整分析了這篇文章。雖然不是針對最新版本的Cocos2dx引擎,但是可以很清晰的告訴妳分辨率適配的原理和方法。

還有壹點需要註意的是,我們遊戲地圖的高度是1920,適配時分辨率只設置為1440,也就是說我們應該全部在屏幕上的內容有四分之壹被遺漏在了屏幕之外。

編輯遊戲地圖

在模擬商業遊戲中,遊戲地圖大多是拼接的。這裏我們使用平鋪地圖編輯器來制作遊戲的地圖。它可以將編輯好的地圖文件保存為TMX格式的文件,COCOS2D-X可以很好的支持這種格式,平鋪地圖不僅生成簡單,而且在引擎中可以靈活使用。關於平鋪地圖的介紹,請參考文章平鋪地圖。

接下來,我們開始創建地圖。

運行TiledMap editor並創建壹個新的地圖文件。填寫以下對話框:

p3

在地圖方向選項中,可以選擇正常,45度(傳說中的2.5D)和45度交錯,這裏我們選擇45度。接下來,您需要設置地圖大小。這裏的數值指的是有多少個圖塊,而不是像素。這裏我們選擇壹張30×30的地圖。

最後,確定瓷磚組件的大小,並設置藝術家提供的地面組件的大小。在本教程中,我們使用128×64的大小。

在地圖尺寸壹欄,可以看到最終的地圖尺寸是3840 * 1920。

點擊確定後,妳可能已經發現這個遊戲地圖是菱形的,如下圖所示。

p4

這裏妳可能會想,為什麽要菱形呢?妳不能選擇45度交錯的形狀來建造壹個長方形嗎?呵呵,其實這也是可以的,但是,默認情況下,Cocos2d-x引擎不支持45度交錯。如果需要在引擎中加載這種交錯的地圖,就必須自己修改引擎代碼(如果看到這個,對整個人都不好),修改後無法正確得到地圖的大小,就需要自己編寫計算大小的公式代碼。鑒於此,我很好奇,是不是因為這個原因,才會出現“全名農場”、“請叫我海盜”等遊戲地圖的四個角都無法點擊的情況?哈哈,只能說我想多了。其實鉆石是鉆石,其他遊戲也是。妳可以在菱形圖的下層放壹個背景來掩蓋這種現象。

接下來回到正題,開始拼接地圖。選擇地圖-新建單幅圖塊,然後填寫如下所示的對話框。

孕烯醇酮

選擇瀏覽按鈕,將準備好的塊文件加載到編輯器中。然後根據瓷磚文件中瓷磚的大小,設置瓷磚的寬度和高度(默認情況下是瓷磚組件的大小,但是)。邊距、間距等。,不可修改,就0。

最後選擇相應的塊,拖動到渲染區域,拼出理想的地圖。

p6

暫時可以簡單的拼壹個地圖,然後根據遊戲需要設置壹些必要的物體和屬性。

加載地圖資源

創建壹個新的遊戲場景並加載遊戲地圖。但在此之前,請將編輯好的tmx和block文件復制到Resource文件夾中。GameScene的結構類似於HelloWorld,妳可以根據HelloWorld類來構建壹個。妳可以先看看它是怎麽實現的,然後實現妳自己的類。這裏不多說了。

在Cocos2d-x中使用TMX,有以下步驟供您參考:

首先,用地圖編輯器編輯妳的地圖,並將其導出為TMX格式。

將導出的TMX文件和相關圖片放在項目的資源文件夾中。

使用Cocos2d-x中TMXTileMap類的create方法創建地圖對象。TMX文件的解析是在引擎內部完成的,所以我們不需要擔心。TMXTileMap是Node的子類,所以只需將它添加到場景中即可。

通過TMXTileMap可以獲得其他相關對象,比如單個tile(屬於Sprite類),比如ObjectGroup(對象組類),比如layer (TMXLayer類)等。可以通過TMXLayer類修改、刪除或添加某個網格位置的瓦片,這樣可以動態修改地圖,也可以做其他操作。我們將在後面解釋相關的API。

將以下代碼添加到GameScene類的init函數中,以創建遊戲地圖:

map layer = layer color::create(color 4b(78,127,41,255));

這-& gt;addChild(mapLayer,-1);

auto map = TMXTiledMap::create(" my map 4 . tmx ");

地圖播放器-& gt;setContentSize(map-& gt;getContentSize());

地圖播放器-& gt;addChild(地圖,10);

auto tree Sprite = Sprite::create(" 1 . png ");

tree sprite->;setAnchorPoint(Vec2(0,0));

tree sprite->;setPosition(Vec2(0,0));

tree sprite->;set scale(2);

地圖播放器-& gt;addChild(treeSprite,11);

在代碼中創建了壹個彩色背景層,背景層的大小等於加載的TMX地圖的大小。然後依次給圖層添加地圖和下面的覆蓋層(實際上是為了防止菱形地圖看起來那麽突兀而添加的壹層)。

  • 上一篇:大學生晉升面試的自我介紹
  • 下一篇:2015年感動中國十大人物,事跡簡介。
  • copyright 2024編程學習大全網