在Cocos2d-X中使用瓦片地图是非常常见的,例如在跑酷和塔防游戏中通常会用到瓦片地图,在前面的博客中我也介绍了瓦片地图的使用,这篇博客主要介绍在Cocos2d-X3.0中使用瓦片地图中的对象层,因为3.0和2.0中调用瓦片地图的对象层的方式有所不同
对于瓦片地图的使用可以参考我的博客
瓦片地图编辑器的使用:http://www.jb51.cc/article/p-brgdymtl-za.html
在Cocos2d-X中使用瓦片地图《一》:http://www.jb51.cc/article/p-kfthyfqc-za.html
Cocos2d-X中使用瓦片地图《二》:http://www.jb51.cc/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;}
执行结果:
总结以上是内存溢出为你收集整理的在Cocos2d-X3.0中使用瓦片地图中的对象层全部内容,希望文章能够帮你解决在Cocos2d-X3.0中使用瓦片地图中的对象层所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)