我试图在同一个GID中找到其他子节点,基本上找到我的邻居节点。但是,在我的25x25地图中,由于某种原因,我只检索了4个GID,分别为6,7,19和20.我的理解是应该有625个GID,每个瓷砖一个,但是我可能不太了解Tile Maps 。当我加载视图时,我看到地图和玩家很好,随意定位在我想要的周围。
我正在使用25x25平铺地图,每个平铺16x16像素,我随机将播放器节点添加到0到400之间的JSTileMap,用于x和y。我的地图有一层。
agent.player.position = CGPointMake(agent.xPos.floatValue, agent.yPos.floatValue);
agent.player.zPosition = 15;
[self.map addChild:agent.player];
然后我将位置转换为JSTileMap点,因为据我所知它反转了y轴。
TMXLayer *layer = self.ground;
CGPoint playerCoord = [layer coordForPoint:agent.player.position];
然后我想检索此播放器的GID并将其存储在字典中,以便稍后我可以找出所有邻居的身份。
TMXLayerInfo *layerInfo = layer.layerInfo;
NSInteger currentTileGID = [layerInfo tileGidAtCoord:playerCoord];
有趣的是,currentTileGID只有6,7,19或20的值,尽管我认为这是1到625之间的随机GID。我不明白这个行为是什么?对于x和y,输入的playerCoord值似乎都是0到400之间的随机值。
谢谢你, LTA