小滿(bill man)個人原創,歡迎轉載,轉載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
地圖是游戲中不可缺少的元素,cocos2d-x中支持兩種瓦片地圖集生成的方式,分別是通過.tga文件和.tmx文件(.tga文件已經不是推薦方法,只是為了兼容性的問題繼續保留)
1.tga文件

使用方法相對簡單,第一個參數是圖素文件,第二個參數是tga文件,也就像是地圖的圖紙一樣,后兩個參數分別為圖素的寬高,tga文件應該是通過photoshop生成,這種方法在現在有tile編輯器的情況下應該已經不太推薦了,效果如下

1.mx文件
用法類似,只是有了地圖圖素編輯器以后,地圖更方便編輯了,用法如下

這個只有一個參數就是tmx文件的路徑
地圖編輯器的下載地址如下,支持45度角方向和正常方向兩個方向,拖動圖素向地圖編輯區就可以編輯相應地圖了,非常方便。
[http://www.mapeditor.org/](http://www.mapeditor.org/)

兩種方式的效果如下
45度角

正常

可以把精靈類加入到地圖中并且可以通過改變地圖與對象的層次來處理精靈對象與地圖的遮擋關系,用法如下:
~~~
//定義對象并加入到地圖中
m_tamara?=?CCSprite::spriteWithFile(s_pPathSister1);
map->addChild(m_tamara,?map->getChildren()->count()?);
//改變在地圖中的層次
int?newZ?=?4?-?(p.y?/?48);
newZ?=?max(newZ,0);
map->reorderChild(m_tamara,?newZ);
也可以把精靈放入地圖中,然后獲得再控制精靈
//獲得精靈
CCTMXLayer*?layer?=?map->layerNamed("Trees");
m_tamara?=?layer->tileAt(?ccp(29,29)?);
m_tamara->retain();
//通過z軸控制遮擋
m_tamara->setVertexZ(?-(?(p.y+32)?/16)?);
~~~
可以通過設置攝像機來設置地圖的視角
~~~
map->getCamera()->getEyeXYZ(&x,?&y,?&z);
map->getCamera()->setEyeXYZ(x-200,?y,?z+300);
~~~
也可以通過設置動作實現縮放
map->runAction(?CCScaleBy::actionWithDuration(2,?0.5f)?)?;
剛開始研究此引擎,如有錯誤之處,希望大家多多指正
下一篇寫一下test類里面的其他場景
- 前言
- (1)--HelloWorld
- (2)--重要概念及Test例子結構
- (3)--動作(CCAction)
- (4)--觸屏事件
- (5)--動作管理
- (6)--場景間切換效果
- (7)--CCProgressTimer
- (8)--場景特效
- (9)--粒子系統
- (10)--運動中的加速度效果
- (11)--拖動間隱效果
- (12)--圖形繪制
- (13)--內存回收機制
- (14)--菜單項
- (15)--CCOrbitCamera
- (16)--LayerColor
- (17)--瓦片地圖集
- (18)--Lable
- (19)--物理引擎box2d(1)
- (20)--物理引擎box2d(2)
- (21)--精靈類
- (22)--動畫類
- (23)--其他(屏幕旋轉,schedule,系統語言)
- (24)--音樂音效
- (25)--CCRenderTexture
- (26)--其他(游戲存檔,切換高清,圖片處理)
- (27)--CCMutableArray
- (28)--CCTMXTiledMap
- (29)-cocosBuilder
- (30)2.1新特性之CCClippingNode
- (31)2.1新特性CCPhysicsSprite
- (32)-cocos2d-x & javascript跨平臺初體驗