SpriteKit - 记录调试信息,如fps,NodeCount

时间:2014-11-16 07:59:34

标签: objective-c debugging sprite-kit

我知道如何在屏幕上显示这些信息,但我想将它们记录在文件/控制台中以进行离线调查。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可以使用场景- (void)update方法自行测量。这个方法调用每个帧都需要计算。

- (void)update
{
  self.frameCount++; // increase frame count value
  uint64_t currentTime = mach_absolute_time(); // get current time
  // according to this two values and last update method call time you're already can calculate the fps
  self.lastUpdateTick = currentTime; // remember for the future method call
}

要获取节点计数值,您应该只计算所有场景子节点的子节点。它可能是某种递归算法(未经过测试)。

- (NSUInteger)childrenOf:(SKNode *)node
{
  NSUInteger count = 0;
  for (SKNode *child in node.children)
    count += [self childrenOf:child] + 1;
  return count;
}

- (void)calculateSceneChildrenCount
{
  NSUInteger count = [self childrenOf:self];
  NSLog(@"count is %lu",count);
}