1、获取对象层数据:
ValueVector value;
value=m->getObjectGroup("obj")->getObjects();//得到对象层数据
for (int i=0; i<value.size(); i++) {
ValueMap val=value.at(i).asValueMap();//获取第i个点
TDPoint * newp=TDPoint::createPoint(val.at("x").asInt(),
val.at("y").asInt());
allPoint.pushBack(newp);
}
2、添加触摸监听:
virtual bool onTouchBegan(Touch *touch, Event *unused_event);
virtual void onTouchMoved(Touch *touch, Event *unused_event);
virtual void onTouchEnded(Touch *touch, Event *unused_event);
//加入触摸处理
auto listener=EventListenerTouchOneByOne::create();
listener->onTouchBegan=CC_CALLBACK_2(GameScene::onTouchBegan, this);
listener->onTouchMoved=CC_CALLBACK_2(GameScene::onTouchMoved, this);
listener->onTouchEnded=CC_CALLBACK_2(GameScene::onTouchEnded, this);
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
3、获取点击点的坐标
代码:
CCLOG("您点击了%f,%f",touch->getLocation().x,touch->getLocation().y);
this->nowRow=8-(int)(touch->getLocation().y/71);
this->nowCol=(int)(touch->getLocation().x/71);
TMXTiledMap * map=(TMXTiledMap *)this->getChildByTag(888);
CCLOG("您点击了地图的第%d行,第%d列,这个位置地图编号%d",nowRow,nowCol,
map->getLayer("bg")->getTileGIDAt(Vec2(nowCol,nowRow))
);