iPhone 游戏的多个 CCTMXTiledMaps

Posted

技术标签:

【中文标题】iPhone 游戏的多个 CCTMXTiledMaps【英文标题】:Multiple CCTMXTiledMaps for iPhone Game 【发布时间】:2013-06-25 11:52:29 【问题描述】:

所以我想通过使用几个不同的 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 节点?

【问题讨论】:

过去两个月我一直在研究瓦片地图,所以我要问你的第一个问题是什么?你能加载所有的瓦片地图吗?如果是,那么请显示您的更多描述性代码。这样我才能正确理解问题。 检查地图的位置并找到游戏内的地图并检查相同的碰撞。这是示例游戏***.com/questions/12345556/… 【参考方案1】:

问题是我计算的瓦片地图位置错误,在瓦片地图坐标到地图位置函数中。

我在乘以 CC_SCALE_RATIO() 函数,或者类似的东西(我想不通),它错误地计算了像素定位。

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

【讨论】:

以上是关于iPhone 游戏的多个 CCTMXTiledMaps的主要内容,如果未能解决你的问题,请参考以下文章