我试图在我的 .tmx 地图中找到特定图块的像素位置。CCTMXLayer 类的 positionAt: 方法应该可以解决问题,但是每当我尝试使用它时,它都会返回一个坐标为 (0,0) 的 CGPoint。这是我正在使用的代码的一部分。
// CCTMXTiledMap Declaration using my class MapLayer
//which inherits from CCTMXTiledMap
MapLayer *tileMap = [MapLayer node];
CCTMXLayer *myLayer = [tileMap layerNamed: @"Middle"];
NSLog(@"%i", [myLayer positionAt: CGPointMake(x,y)].x);
NSLog(@"%i", [myLayer positionAt: CGPointMake(x,y)].y);
无论 CGPointMake 的 x 和 y 的值是什么,CGPoint (0,0) 的值都会不断被记录,我不明白为什么。
编辑:
我只是用地图错误地声明我的图层吗?这是我的代码。
//init method for MapLayer.m class file
@implementation MapLayer
-(id) init {
if( (self=[super initWithTMXFile: @"ZombearTilemap.tmx"])) {
}
return self;
}
//in my MainScene.m class init method
MapLayer *tileMap = [MapLayer node];
[self addChild: tileMap];
CCTMXLayer *tileMapLayer = [tileMap layerNamed: @"Middle"];
// (tileMapLayer == nil) returns false
//tileMap.mapSize.width returns 0
//[[tileMapLayer tileAt:ccp(x,y)] boundingBox].size.height returns 0