标签:
瓦片地图
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { CCNode* node = [self getChildByTag:TileMapNode]; CCTMXTiledMap* tileMap = (CCTMXTiledMap*)node; // 将屏幕位置转换为瓦片坐标 CGPoint touchLocation = [self locationFromTouch:[touches anyObject]]; CGPoint tilePos = [self tilePosFromLocation:touchLocation tileMap:tileMap]; } //点击的位置 -(CGPoint) locationFromTouch:(UITouch*)touch { CGPoint touchLocation = [touch locationInView: [touch view]]; return [[CCDirector sharedDirector] convertToGL:touchLocation]; } //location:点击的位置 tileMap:地图 -(CGPoint) tilePosFromLocation:(CGPoint)location tileMap:(CCTMXTiledMap*)tileMap { //点击的位置+地图的坐标(偏移量) CGPoint pos = ccpSub(location, tileMap.position); //缩放的大小(屏幕外,未滚动) float scaledWidth = tileMap.tileSize.width / CC_CONTENT_SCALE_FACTOR(); float scaledHeight = tileMap.tileSize.height / CC_CONTENT_SCALE_FACTOR(); //地图的坐标 pos.x = (int)(pos.x / scaledWidth); pos.y = (int)((tileMap.mapSize.height * tileMap.tileSize.height - pos.y) / scaledHeight); return pos; }
convertToGL
考虑到当前场景的SCALE因子
标签:
原文地址:http://www.cnblogs.com/xiaosafeimao/p/4991858.html