1

等角タイル座標を画面座標に変換しようとしています。特に 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);

私のプレーヤーはタイルマップ自体に子として追加され、マップは0.5のアンカーポイントでscreenSize.x/2、scrrensize.y/2のレイヤーに追加されます

私は直交マップで同じことを成功させましたが、等角図では苦労しているようです。

ありがとうございました

4

2 に答える 2

1
int y = (pos.y + (mapHeight * tileWidth/2) - (tileHeight/2)) - ((pos.y + pos.x) *   tileHeight/2) + tileHeight;
于 2013-08-07T19:24:55.197 に答える