Tiled 地图坐标原点在左上,而 Creator 里面坐标原点在左下。请教转换方法。
找到一些资料,但是貌似都不正确。
// Creator 坐标转成 Tiled 坐标
tileCoordForPosition: function(map, spritePosition) {
var mapSize = map.getMapSize();
var tileSize = map.getTileSize();
var tilePoint = cc.p(spritePosition.x / tileSize.width, (mapSize.height * tileSize.height - spritePosition.y) / tileSize.height);
return tilePoint;
},
// Tiled 坐标转成 Creator 坐标
positionForTileCoord: function(map, spritePosition) {
// 地图的高,即行数
var mapSize = map.getMapSize();
// 图块大小
var tileSize = map.getTileSize();
var x = spritePosition.x * tileSize.width + tileSize.width / 2;
var y = (mapSize.height - spritePosition.y) * tileSize.height - tileSize.height / 2;
return cc.p(x, y);
}
上面这个算法是参考 cocos2d-x 的转换算法,我这边没有成功,老司机求带路。