Sprite Kit使用16x16 tile和32x32 tile渲染性能?

时间:2015-06-12 07:51:50

标签: ios objective-c performance sprite-kit tiled

我做了一个Tiled游戏。现在,我通过增加场景中的节点数来压力测试手机的功能。有基于物理的东西,AI运动,Day&夜间系统,颗粒在这里突然冒出来那里&我的场景还有很多其他东西在引擎盖下。我想知道的是,使用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磁贴,我会以某种方式释放一些内存或“减轻系统负载”吗?

1 个答案:

答案 0 :(得分:4)

使用平铺贴图,每个贴图通常由SKSpriteNode表示。因此,如果您的地图是320 x 320并且您使用的是32x32磁贴,那么最终将有100个节点。在相同的地图大小上使用16x16图块将产生400个节点。节点越多,负载就越大。

另外请注意,您应该考虑让SKAToolKit在您的应用中解析平铺地图。它是开源的,免费的,并且具有大量内置功能,如自动跟踪,迷你地图等......