在Cocos2d-X3.0中使用瓦片地图中的对象层
发布时间:2020-12-14 20:51:01 所属栏目:百科 来源:网络整理
导读:在Cocos2d-X中使用瓦片地图是非常常见的,例如在跑酷和塔防游戏中通常会用到瓦片地图,在前面的博客中我也介绍了瓦片地图的使用,这篇博客主要介绍在Cocos2d-X3.0中使用瓦片地图中的对象层,因为3.0和2.0中调用瓦片地图的对象层的方式有所不同 对于瓦片地图
在Cocos2d-X中使用瓦片地图是非常常见的,例如在跑酷和塔防游戏中通常会用到瓦片地图,在前面的博客中我也介绍了瓦片地图的使用,这篇博客主要介绍在Cocos2d-X3.0中使用瓦片地图中的对象层,因为3.0和2.0中调用瓦片地图的对象层的方式有所不同
对于瓦片地图的使用可以参考我的博客 瓦片地图编辑器的使用:http://www.52php.cn/article/p-brgdymtl-za.html 在Cocos2d-X中使用瓦片地图《一》:http://www.52php.cn/article/p-kfthyfqc-za.html Cocos2d-X中使用瓦片地图《二》:http://www.52php.cn/article/p-gpqbjzpb-za.html
首先使用瓦片地图编辑器编辑好一张地图
创建一个MapScene类用于加载地图,并且在MapScene.h中添加下面的代码 #ifndef _MapScene_H_ #define _MapScene_H_ #include "cocos2d.h" USING_NS_CC; class MapScene : public Layer { public: MapScene(void); ~MapScene(void); static Scene* createScene(); bool init(); CREATE_FUNC(MapScene); }; #endif 在MapScene.cpp中添加下面的代码 #include "MapScene.h" MapScene::MapScene(void) { } MapScene::~MapScene(void) { } Scene* MapScene::createScene() { auto scene = Scene::create(); auto layer = MapScene::create(); scene->addChild(layer); return scene; } bool MapScene::init() { if(!Layer::init()) { return false; } //创建tmx地图 TMXTiledMap* map = TMXTiledMap::create("obj.tmx"); addChild(map); //获得对象数组 TMXObjectGroup* objG = map->getObjectGroup("OBJEC"); //获得对象数组中的一个对象 auto object = objG->getObject("0"); //获得对象的坐标 float x = object["x"].asFloat(); float y = object["y"].asFloat(); //在对象上创建一个精灵 Sprite* sprite = Sprite::create("1.png"); map->addChild(sprite); //设置精灵的位置 sprite->setPosition(Vec2(x,y)); //设置精灵的描点为左下角 sprite->setAnchorPoint(Vec2(0,0)); return true; } 执行结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |