Sprite Kit 使用 16x16 tiles 与 32x32 tiles 渲染性能?

Sprite Kit render performance using 16x16 tiles vs 32x32 tiles?

我做了一个Tiled游戏。现在,我正在通过增加场景中的节点数量来对 phone 的功能进行压力测试。有基于物理的东西,AI 运动,日夜系统,粒子在这里和那里突然出现以及我的场景的引擎盖下发生的许多其他事情。我想知道的是,使用我现在拥有的 16x16 磁贴与使用 32x32 磁贴有性能差异吗?这些图块基本上只是添加到场景中的图像;他们没有任何物理机构或任何其他类似的东西。它们确实具有我在 Tiled 中制作地图时为其设置的属性,但我认为这不会对性能产生任何影响。每张地图都有几层(背景、植被、重生点、建筑物,有时还有几层)。下面是一个代码片段,说明如何为 1 个这样的层渲染图块:

        if([map propertiesForGid:tileGid][@"shrub"])
        {
            SKSpriteNode *tile = [layer tileAtCoord:coord];
            tile.name = @"vegShrub";
            [self addChild:tile];
        }
        else if([map propertiesForGid:tileGid][@"tree"])
        {
            SKNode *tile = [[Breakable alloc] initWithWhole:[atlas textureNamed:@"tree"] broken:[atlas textureNamed:@"tree-stump"]];
            tile.position = [self pointForCoord:coord];
            [self addChild:tile];
            [layer removeTileAtCoord:coord];
        }

如果我在当前的 16x16 瓷砖上使用 32x32 瓷砖,我会以某种方式释放一些内存或 "relieve the load" 关闭系统吗?

对于瓦片地图,每个瓦片通常由一个 SKSpriteNode 表示。因此,如果您的地图是 320 x 320,并且您使用的是 32x32 的图块,那么您最终会得到 100 个节点。在相同地图大小上使用 16x16 瓦片将产生 400 个节点。节点越多,负载越大。

另一方面,您应该考虑获取 SKAToolKit 来解析应用程序中的图块地图。它是开源的、免费的,并具有大量内置功能,例如自动关注、迷你地图等...