0

我试图在同一个 GID 中找到其他子节点,基本上是找到我的邻居节点。但是,在我的 25x25 地图中,出于某种原因,我只检索了 4 个 GID,6、7、19 和 20。我的理解是应该有 625 个 GID,每个图块一个,但也许我不太了解 Tile Maps . 当我加载视图时,我看到地图和玩家很好,随机定位在我想要的周围。

我正在使用 25x25 平铺地图,每个平铺 16x16 像素,并且我将播放器节点随机添加到 JSTileMap 中,x 和 y 介于 0 到 400 之间。我的地图只有一层。

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,尽管我认为随机 GID 会在 1 到 625 之间。我对这种行为不了解的是什么?对于 x 和 y,输入 playerCoord 值似乎是正确的,从 0 到 400 是随机的。

谢谢你,lta

4

0 回答 0