天天看點

cocos2d-x的初步學習十五之坦克大戰二

最近比較忙,也沒時間寫。。。。OK,我們接着講下去,現在我們已經建立了一個新的遊戲場景,但現在一片空白,我們并沒有加載任何東西。那麼顯然下面,我們應該加載一張地圖,說到地圖,那我們就需要地圖編輯器,這裡推薦Tiled地圖編輯器,現在tiled地圖編輯器主要是qt版的,當然還有java版,

java版下載下傳位址:http://download.csdn.net/detail/kuloveyouwei/5412155

qt版下載下傳位址:http://download.csdn.net/detail/kuloveyouwei/5412251

首先先打開QT版的地圖編輯器,建立一個52*52的8*8像素點的:

cocos2d-x的初步學習十五之坦克大戰二
cocos2d-x的初步學習十五之坦克大戰二

OK,添加新的圖塊

cocos2d-x的初步學習十五之坦克大戰二

最後添加瓦片圖檔進去,自己折騰把,,

cocos2d-x的初步學習十五之坦克大戰二

儲存生産tmx格式的,其實就是一個xml,我們來看下:

<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="52" height="52" tilewidth="8" tileheight="8">
 <tileset firstgid="1" name="tile" tilewidth="8" tileheight="8">
  <image source="tile.png" trans="000000" width="224" height="32"/>
 </tileset>
 <layer name="bg1" width="52" height="52">
  <data encoding="base64" compression="zlib">
   eJztmO0KwjAMRaegoO+goKDv/4j2Z3dhvbtL+jGXAyWw0qzmzFA6TRqXNK5ZVLGu9+aVxjuLrdd7E35816uc0jhnEbHWl+W3ziOPNJ5ZRKz1Zfmt80j40RjNjwrmU+uP34O3HxXMp9Yfv4fw819+GN7+kNbnB+/6IKOdH6yEnzm3NO5ZZKh+1Hpjftwf63+fNL5ZZKh+1Hpjftwf63/hZ19+VF+Itz91P/j7VV+Itz91P+GnTG8/CDsPs/7DotrvWH9jsPMw6z8sqv2O9TdG+BnbDwPrq9av9f0OA+ur1q/1/Q4j/MypPa/en7D+VLu+bL16f8L6U+3vP/zs2w/i3X9Gvx9V53vfj4af8vzR/XjT24834ac8P7qf3u/37m+18T5fePnZ+r8Z1c/W/01rP2qd1z5fym/tj171YevXvt/aH8NPOc/a50v5VT8/kOhNCQ==
  </data>
 </layer>
 <layer name="bg2" width="52" height="52">
  <data encoding="base64" compression="zlib">
   eJzt0bEJACAQA0Ab3UP3H1IX8LEQ8eEOQiBtSgEAAAAAAAAAAOClutKCzqavjKCz2f2Q/Z/T/Xf+uWMCZ9oCcQ==
  </data>
 </layer>
 <objectgroup name="objects" width="52" height="52">
  <object name="pl1" x="136" y="384" width="24" height="24"/>
  <object name="en1" x="4" y="4" width="24" height="24"/>
  <object name="en2" x="200" y="0" width="24" height="24"/>
  <object name="en3" x="392" y="0" width="24" height="24"/>
  <object name="t1" x="132" y="60" width="24" height="24"/>
  <object name="t2" x="68" y="228" width="24" height="24"/>
  <object name="t3" x="260" y="196" width="24" height="24"/>
  <object name="t4" x="324" y="324" width="24" height="24"/>
  <object name="t5" x="380" y="164" width="24" height="24"/>
  <object name="t6" x="228" y="116" width="24" height="24"/>
  <object name="t7" x="316" y="4" width="24" height="24"/>
  <object name="t8" x="208" y="168" width="24" height="24"/>
  <object name="t9" x="28" y="124" width="24" height="24"/>
  <object name="t10" x="4" y="356" width="24" height="24"/>
  <object name="home" x="192" y="384" width="32" height="32"/>
 </objectgroup>
</map>
           

裡面是一些map的資訊,比如說每塊瓦片的大小為8*8像素,這裡是定義了兩個層,bg1,bg2,<data>裡是地圖的編碼資訊,objectgroup,,對象層,對象層允許你在地圖上圈出一些區域,來指定一些事件的發生。在這裡,我們定義了一些敵人出現的坐标位置,自己坦克出現的位置等。

OK,地圖有了,我們來看怎麼加載地圖到我們的場景中,

CCSize wSize=CCDirector::sharedDirector()->getVisibleSize();
   
    CCTMXTiledMap *gameMap=CCTMXTiledMap::create("map2.tmx");
    
    //縮放比列
    float scale=wSize.height/gameMap->getContentSize().height;

    gameMap->setScale(scale);
    gameMap->setPosition(wSize.width/6,0);
    
    this->addChild(gameMap, 1);
           

OK,加載地圖就這麼簡單,别忘了要工程裡加入瓦片的圖檔哦。。。

cocos2d-x的初步學習十五之坦克大戰二

這裡我們直接在場景裡裡初始化我們的地圖,其實應該是建立一個地圖層,下一章,我們将建立一個地圖層專門來初始化地圖。。。。

繼續閱讀