我正在使用Tiled处理tile map。我的地图上有一个玩家生成点的对象。
我已经能够产生玩家对象了。但是,我不知道如何访问播放器对象函数或IVAR?
在MyScene:
TileMapLayer *_playerLayer = [[TmxTileMapLayer alloc]
initWithTmxObjectGroup:[_tileMap groupNamed:@"Spawn"]
tileSize:_tileMap.tileSize
gridSize:_bgLayer.gridSize
objectType:@"Player"];
[_worldNode addChild:_playerLayer];
这将创建一个玩家对象。播放器对象具有我想要运行的功能和我想要查询的IVAR。注意,一些函数返回值。
来自Player对象的示例:
- (BOOL)currentWeaponStatus
{
return _weapon.hidden;
}
到目前为止,我认为我可以使用以下方式访问它:
BOOL weaponHidden = [[_playerLayer childNodeWithName:@"person"] childNodeWithName:@"weapon"].hidden;
但这似乎并不“简单”。如何在_playerLayer中访问子节点的函数/ IVAR?
仅供参考:我在播放器节点上有一个武器节点 - 这会被添加到拼贴图层节点。
感谢您的时间。 -shoes
答案 0 :(得分:1)
这就是我需要的:
Person *player = (Person *)[_playerLayer childNodeWithName:@"person"];
感谢Ray Wenderlich的Chris ......
http://www.raywenderlich.com/forums/viewtopic.php?f=38&t=11775&p=61090#p61090