在scene中加如下代码可以加载一副地图
但是一点地图程序就退出,点击屏幕的时候程序会退出,应该是layer没有定义吧。
// TileMap
auto map = TMXTiledMap::create("isometric_grass_and_water.tmx");
map->setPosition(Vec2(visibleSize.width/4*3 - map->getContentSize().width/2, 0));
auto listener1 = EventListenerTouchOneByOne::create();
listener1->onTouchBegan = [](Touch* touch, Event* event){
return true; // if you are consuming it
};
listener1->onTouchEnded = [=](Touch* touch, Event* event){
auto layer = map->getLayer("layer0");
Size viewSize = Director::getInstance()->getWinSize();
Vec2 mapCordinate = map->convertToNodeSpace(Director::getInstance()->convertToGL(touch->getLocationInView()));
int tileX = mapCordinate.x / map->getTileSize().width;
int tileY = (viewSize.height - mapCordinate.y) / map->getTileSize().height;
int id = layer->getTileGIDAt(Vec2(tileX, tileY));
Sprite* tileSprite = layer->getTileAt(Vec2(tileX, tileY));
std::cout << "Tile GID: " << id << std::endl;
};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener1, map);
scene->addChild(map, 0, 99); // with a tag of '99'