使用cocosstudio構建橫版遊戲主角2

2021-06-20 15:55:44 字數 1789 閱讀 3287

昨天實現了從ccs中匯出乙個動畫給2dx使用。不妨就把他當成遊戲的主角。今天要實現另外乙個基本元素————地圖。

ccs提供了地圖編輯器,但是做橫版四方向遊戲還是推薦使用tiled編輯器。他本身是乙個開源的地圖編輯器,而且在2dx中使用起來很方便。

tiled拼接完成後會有乙個字尾名為.tmx的地**件和對應的檔案。把這些資源放入2dx的資源資料夾中。接下來就是在**中去使用他了。

cctmxtiledmap* tmxmap = cctmxtiledmap::create("map/cxuchang.tmx");

addchild(tmxmap);

在昨天的那個hello層中通過這兩行**建立新增了乙個tmx地圖,效果如下:

可以看到主角站在了地圖上(無視那個按鍵吧,後面會提到他的)。

由於實際使用中,可能會有一些層要遮蓋在主角前面,為此在tiled中編輯地**件。新建乙個圖層,然後放上你要的遮蓋物。在這裡我放上了幾把刀子,現在這個地**件有兩個圖層了。把主角的z軸設在底下的那層來實現遮蓋

setzorder(tmxmap->layernamed("ground1")->getzorder());
效果如下:

可以看到,主角站在了地面的前面和刀子的後面。

接下去,我們要讓主角動起來。為此我給他新增了乙個layer來接受觸控訊息。就是上圖看到的大大的按鈕啦。這個不在文章的討論範圍內,就不具體討論怎麼實現了。

為了讓主角動起來,我新增了乙個動畫角色類,裡面有一些可能會用到的引數。

//動作名稱,和ccs中的對應

extern char* actidname[actidtotal] ;

class aninode :public ccnode

;

第一步,讓主角在螢幕上位移。主角現在是有x軸速度和y軸速度的屬性了,在主角的update函式中去換算這一定時器產生的位移
setpositiony(dt*yspeed+getpositiony());

setpositionx(dt*xspeed+getpositionx());

//不強制執行

if(!isenforce)

else

return;

}//強制執行

else

}

現在我們在給主角速度的時候設定他的狀態為跑步,他就跑起來啦。可是主角還不能夠翻轉,在setactid中新增

switch(actdir)

根據主角的動作朝向來做翻轉。主角就可以自由自在的跑在地圖上了。接下來讓鏡頭跟隨主角移動。這裡用了2dx本身有的乙個follow動作
ccfollow* follow = ccfollow::create((ccnode*)armature, ccrectmake(0, 0, tmxmap->getcontentsize().width*tmxmap->getscalex(),tmxmap->getcontentsize().height*tmxmap->getscaley()));
第乙個引數是跟隨的物件,後面則設定了跟隨者地圖的矩形。run這個動作來保證主角始終在螢幕**。

這樣一來,主角就可以自由的移動了。

CocosStudio使用Lua檢測按鈕點選

1.按鈕或者核取方塊要在scene下。2.布林值取反,是not。mainscene.lua local mainscene class mainscene cc.load mvc viewbase 載入csb檔案 mainscene.resource filename mainscene.csb 獲...

使用Cocos Studio 建立幀動畫《2》

這篇部落格通過製作乙個旋轉的風車介紹使用一張製作幀動畫 建立乙個名稱為rotation的節點,節點的建立方式可以參考我的部落格使用cocos studio 建立幀動畫 1 將一張風車匯入到cocos studio中,資源的匯入方法可以參考我的部落格使用cocos studio 建立幀動畫 1 將拖到...

骨骼動畫詳解 Cocos Studio

在之前的骨骼動畫詳解 spine一文中,我們已經介紹過什麼是骨骼動畫,骨骼動畫的優缺點,以及骨骼動畫編輯器 spine的使用。接下來本文將結合另乙個可編輯骨骼動畫的編輯器 cocos studio 介紹骨骼動畫的使用。cocos studio是一套基於cocos2d x的免費遊戲開發工具集,它能幫助...