【发布时间】:2013-10-26 18:12:22
【问题描述】:
我正在使用 Sprite Kit 构建简单的游戏,其中关卡由相同的矩形块构建。但是当我添加很多块(即 1000)时,游戏变得非常慢(FPS 下降到 20)。以下是我向场景添加块的方法:
-(void)drawLevel
{
SKSpriteNode *shelf = [SKSpriteNode spriteNodeWithTexture:_initialLevel.earthBoxTexture];
shelf.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:shelf.size];
shelf.physicsBody.dynamic=NO;
shelf.physicsBody.categoryBitMask = platformCategory;
for (NSValue *positionValue in _initialLevel.boxPositions)
{
shelf.position = positionValue.CGPointValue;
[_platformsNode addChild:[shelf copy]];
}
[_world addChild:_platformsNode];
}
_world 是主场景的子对象。我创建“架子”一次,然后复制它。我应该怎么做才能获得好的 FPS?
应用在 iPhone 5 上进行了测试。
【问题讨论】:
-
这是在设备上还是在模拟器上?我认为给出的答案是正确的,但值得在问题中添加该信息。模拟器中的 20fps 和设备上的 20fps 是截然不同的情况。
-
对于仅使用 1 个节点的解决方案,请参阅 stackoverflow.com/a/37768928/763355
标签: objective-c cocoa-touch nodes sprite-kit