我做了一个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磁贴,我会以某种方式释放一些内存或“减轻系统负载”吗?
答案 0 :(得分:4)
使用平铺贴图,每个贴图通常由SKSpriteNode表示。因此,如果您的地图是320 x 320并且您使用的是32x32磁贴,那么最终将有100个节点。在相同的地图大小上使用16x16图块将产生400个节点。节点越多,负载就越大。
另外请注意,您应该考虑让SKAToolKit在您的应用中解析平铺地图。它是开源的,免费的,并且具有大量内置功能,如自动跟踪,迷你地图等......