我在 cocos2dx-2.2 上使用 CCTMXTiledMap,我创建并添加了这样的平铺地图:
// TileMap
CCTMXTiledMap *m_pTileMap = CCTMXTiledMap::create("tilesets/my-isometric-small.tmx");
float fPosX = m_pTileMap->getPositionX();
float fPosY = m_pTileMap->getPositionY();
CCLOG( "TileMapPos: %f, %f", fPosX, fPosY );
this->addChild(m_pTileMap);
平铺地图已成功创建和渲染,但位置不正确。我使用 CCTMXTiledMap::getPosition、CCTMXLayer::positionAt,还检查了我从 CCTMXLayer::tileAt 获得的 CCSprite...所有这些都根据左下角的 cocos2d 屏幕坐标 { (0, 0) 返回正确的值并且向上和向右增加} 但是,当在屏幕上查看时,总是会有轻微的偏移,我无法得到它来自哪里。所有的 m_obOffsetPosition 都被确认为零......
通过正确的值,我的意思是图块位于粉红色区域(我从每个图块中获取位置,为每个图块创建 CCSprite,每个图块的 setPosition 并将其添加到屏幕......它们显示在粉红色区域)
图像应该定位在阴暗的粉红色框,而是定位在蓝色区域(整个蓝色的大海就是整个地图)
任何想法都非常感谢......谢谢!