2

在 Corona SDK 中,我正在制作一个玩家可以驾驶汽车的应用程序。我有一个打印功能,当汽车受到冲击时会调用它。

print("@",self.frames,virtual,self.animation.rotation,self.animation.angularDamping);

大约每秒60次。取消注释时,汽车控制变得更加敏感。在我看来,这是由于在调试时过度使用系统资源造成的。

我想留下 print() 的副作用,但不想在上面浪费 CPU。如果你知道当我试图在一帧中放置太多动作时,Corona Simulator 在低级代码中的作用是什么,你能解释一下吗?

4

2 回答 2

1

如何创建一个包含所有调试数据的表。然后,您可以放置​​一个计时器,每隔 x 秒将您的数据打印到终端,或者您可以将其写入文件。

data = {}

function onEveryFrame()

    data[#data + 1] = { }
    data.frames = self.frames
    data.virtual = virtual
    data.rotation = self.animation.angularDamping
    data.angularDamping = self.animation.angularDamping

end

function calledByTimerEveryXSeconds()

// print data table here

end
于 2013-05-04T22:49:49.370 回答
1

我认为您对系统资源征税的假设是正确的。

也许您可以通过降低帧速率来实现类似的效果(如果您使用的是运行时功能)。无论您的真正问题是什么,这似乎都是一种解决方法。除了使用运行时函数,您还可以使用每秒调用 30 次左右的游戏循环计时器,并相应地进行调整。

于 2013-05-23T00:30:17.917 回答