【发布时间】:2013-08-11 19:03:58
【问题描述】:
我一直在尝试理解使用 Tiled Map Editor 制作的 Knight Fight 等距游戏
当我打开一个新项目并加载相同的地图时,这个特殊的功能给了我不同的结果。
-(CGPoint) locationFromTilePos:(CGPoint)tilePos;
{
CCTMXLayer *grass = [self.tileMap layerNamed:@"Grass"];
CCSprite *tile = [grass tileAt:tilePos];
float x = -tile.position.x - self.tileMap.tileSize.width + 32;
float y = -tile.position.y - self.tileMap.tileSize.height;
return CGPointMake(x, y);
}
在 Knight Fight 中以 (0,0) 的形式输入 tilePos 时
- 草砖位置:(1248, 1248)
- 函数返回的最终位置:(-1280,-1280)
在我的新项目中以 (0,0) 形式输入 tilePos 时
- 草砖位置:(624, 624)
- 函数返回的最终位置:(-656,-656)
我无法在 Cocos2d 上使用 Tiled 找到任何在线等距地图资源。我需要在平铺坐标和真实屏幕坐标之间进行转换。谁能帮忙。
【问题讨论】:
-
该项目大约有一年的历史,并且正在使用 cocos2d-iPhone v .99.5 ,我相信这是在它支持视网膜设备之前。您可以尝试升级 cocos2d 版本,并修复出现的问题(在这种情况下,我会升级到 1.1,而不是 2.x,因为升级路径更容易)
-
好的,所以值的差异是因为旧的 cocos2d 版本?另外,能否请您指出我可以使用 Tiled 研究等距地图并访问 cocos2d 中的坐标的任何资源。
标签: iphone ios cocos2d-iphone isometric