我一直有很多问题升级到Cocos2D 2.1,并且一次只采取一步。我有一个问题,我试图弄清楚这是令人困惑的:来自tmx地图的对象的y坐标值是完全错误的。
在hd tmx文件中,使用以下属性定义对象:
<object name="SaveStation" type="10006" x="304" y="752" width="96" height="32"/>
初始化场景时,我得到上面列出的SaveStation对象的x / y值属性:
CCTMXObjectGroup *objects = [theMap objectGroupNamed:@"oj"];
NSMutableDictionary *startPoint = [objects objectNamed:@"SaveStation"];
int x = [[startPoint valueForKey:@"x"] intValue];
int y = [[startPoint valueForKey:@"y"] intValue];
NSLog(@"x = %i",x);
NSLog(@"y = %i",y);
奇怪的是,它退出了:
x = 304
y = 1456
答案 0 :(得分:0)
好吧我明白了......
CCTMXXMLParser.m以字面像素而不是点来引用高清地图中的图块高度值!
[code] // Y. value = [attributeDict objectForKey:@“y”]; if(value){ int y = [value intValue] + objectGroup.positionOffset.y;
// Correct y position. (Tiled uses Flipped, cocos2d uses Standard)
y = (_mapSize.height * _tileSize.height) - y - [[attributeDict objectForKey:@"height"] intValue];
[dict setObject:[NSNumber numberWithInt:y] forKey:@"y"];
}[/code]
_tileSize.height将返回32.因此我需要使用16而不是32的磁贴大小。