【发布时间】:2015-08-28 03:55:31
【问题描述】:
我制作了一个 Tiled 游戏。现在,我正在通过增加场景中的节点数量来对手机的功能进行压力测试。有基于物理的东西,人工智能运动,昼夜系统,粒子在这里和那里弹出以及在我的场景的引擎盖下发生的许多其他东西。我想知道使用 16x16 瓦片(我现在拥有的瓦片)与使用 32x32 瓦片是否存在性能差异?这些图块基本上只是添加到场景中的图像;他们没有任何物理实体或任何其他类似的东西。它们确实具有我在 Tiled 中制作地图时设置的属性,但我认为这不会对性能产生任何影响。每张地图都有几层(背景、植被、生成点、建筑物,有时还有更多)。下面是如何为 1 个这样的层渲染图块的代码 sn-p:
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 瓷砖,我会以某种方式释放一些内存或“减轻系统负载”吗?
【问题讨论】:
-
这可能不会有什么不同,因为您将绘制相同数量的像素(填充率)。如果您在每一帧都枚举平铺精灵并且在该渲染循环中效率低下,或者您每帧都对每个精灵做疯狂的事情,那么它可能会有所作为。
标签: ios objective-c performance sprite-kit tiled