嗨,我在 cocos2d 中开发了一款基于瓷砖地图的游戏。在这个我需要找到移动精灵和瓦片地图层之间的碰撞。我遵循了 raywindlich 教程。我在游戏中缩放了瓷砖地图。IE。tilemap.scale=0.5;
请帮我找到精灵与地图层的碰撞。
嗨,我在 cocos2d 中开发了一款基于瓷砖地图的游戏。在这个我需要找到移动精灵和瓦片地图层之间的碰撞。我遵循了 raywindlich 教程。我在游戏中缩放了瓷砖地图。IE。tilemap.scale=0.5;
请帮我找到精灵与地图层的碰撞。
这是我用来获取给定图层和屏幕上的点的图块 ID 的函数。它牢记设备比例因子。
- (int) getTileGIDMap:(CCTMXTiledMap *) map atLayer:(NSString *) layer andPosition:(CGPoint) position {
int GID = 0;
CCTMXLayer *mapLayer1 = [map layerNamed:layer];
int mapX = position.x * CC_CONTENT_SCALE_FACTOR() / (mapLayer1.mapTileSize.width);
int mapY = mapLayer1.layerSize.height - (position.y - map.position.y) * CC_CONTENT_SCALE_FACTOR() / mapLayer1.mapTileSize.height;
if (mapX >= 0 && mapY >= 0 && mapY < map.mapSize.height) {
GID = [mapLayer1 tileGIDAt:ccp(mapX, mapY)];
}
return GID;
}
希望能帮助到你