0

所以我想通过使用几个不同的 CCTMXTiledMaps 将我的游戏分成块。我可以将地图加载到我的主“HelloWorldLayer”中。我还能够检测到玩家精灵是否与具有“可收藏”属性的图块发生碰撞。当我将几个 CCTMXTiledMap 节点添加到游戏中时会出现我的问题,因为它不会对所有节点进行可收集的图块检测,而只是对第一个节点进行检测。

这是我进行检查的工作代码,但仅适用于第一个添加的 CCTMXTledMap:

    CGPoint point = [self getTileCoordForPosition:position :map];

    CCTMXLayer *metaLayer = [map layerNamed:@"Meta"];
    CCTMXLayer *foregroundLayer = [map layerNamed:@"Foreground"];
    CCSprite *metaTile = [metaLayer tileAt:point];
    CCSprite *foregroundTile = [foregroundLayer tileAt:point];

    if (foregroundTile)
    {
        NSLog(@"HIT!");

        // Remove the meta tile and the foreground tile
        [metaLayer removeTileAt:point];
        [foregroundLayer removeTileAt:point];
    }

如何使此代码检查已添加的每个 CCTMXTiledMap 节点?

4

1 回答 1

0

问题是我在瓷砖地图坐标到地图位置函数中计算了错误的瓷砖地图位置。

我乘以 CC_SCALE_RATIO() 函数,或类似的东西(从我的头顶开始),它错误地计算了像素定位。

自从找到解决方案后,我就想我会写一个答案。希望它可以帮助某人!

于 2013-07-31T00:13:51.503 回答