我正在尝试将等距平铺坐标转换为屏幕坐标。我似乎有问题,尤其是 Y 坐标,看起来 X 部分工作得很好。这是我到目前为止得到的。
// calculate screen coordinates from tile coordinates
- (CGPoint)positionForTileCoord:(CGPoint)pos {
float halfMapWidth = _tileMap.mapSize.width*0.5;
float mapHeight = _tileMap.mapSize.height;
float tileWidth = _tileMap.tileSize.width;
float tileHeight = _tileMap.tileSize.height;
int x = halfMapWidth*tileWidth + tileWidth*pos.x*0.5-tileWidth*pos.y*0.5;
int y = ............
return ccp(x, y);
我的播放器作为子元素添加到 Tile 地图本身,地图添加到 screenSize.x/2、scrrensize.y/2 的图层,锚点为 0.5
我用正交地图成功地完成了同样的事情,但似乎在使用等距地图时遇到了困难。
谢谢