我有一个使用Tiled Map editor制作的等轴测图。当前图块仅具有基础层(即背景)。
我想动态地在这个图层上添加一个图块,比如在图块位置(1,1),这样图块就会有效地成为地图的一部分。
因此,当我更改地图的位置时(例如,在滚动时),我希望新添加的图块的行为类似于地图的一部分,并使用地图在其图块位置移动。
我尝试过CCTMXLayer类-(void) addChild: (CCNode*)node z:(NSInteger)z tag:(NSInteger)tag;
,但它会抛出一个错误说明这一点。我不太了解第二行。
addchild:z:tag:CCTMXLayer不支持。而不是setTileGID:at:/ tileAt:
另外,我尝试在Tiled中添加对象层并访问对象属性 -
CCTMXObjectGroup* objectLayer=[tileMap objectGroupNamed:@"ObjectLayer"];
NSDictionary *properties = [objectLayer objectNamed:@"theObject"];
int x = [properties[@"x"] intValue];
int y = [properties[@"y"] intValue];
这里我很难从x,y值转换为屏幕坐标。或者从x,y来更正tilePos。需要紧急帮助。
旁注 - 我读过Kobold Kit将能够“在运行时创建和修改每个tilemap方面”。这会有帮助吗?
答案 0 :(得分:0)
如果你想在瓷砖地图编辑器坐标中添加一个瓷砖来说瓷砖(x,y)((x,y)),那么使用以下代码 -
myTileMap是对CCTMXTiledMap对象的引用。
CCTMXLayer *layer=[myTileMap layerNamed:@"yourlayer"];
NSAssert(floorLayer !=nil, @"Ground layer not found!");
CGPoint tileAddPosition = [layer positionAt: CGPointMake(x,y)];
//Create your CCNode or CCSprite or whatever...say object name is **tileToBeAdded**
tileToBeAdded.anchorPoint = CGPointZero;
tileToBeAdded.position = tileAddPosition;
[myTileMap addChild:addedTile z:1];