Cocos2D升级 - 错误的对象y坐标

时间:2014-02-14 19:47:36

标签: object properties cocos2d-iphone coordinates

我一直有很多问题升级到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

1 个答案:

答案 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的磁贴大小。