我有this Sketch。您可以使用最多加速来左右驾驶,左右旋转船只方向。 (虽然由于无法从编辑器中模糊而无法在Sketch上运行,因此按键事件不会在画布窗口中注册)
每一帧都将船舶当前质心处的点加到完整的船舶轨道上。这一切都很好,花花公子。大约2分钟左右 - 取决于您的计算机 - 飞行时出现问题。逐渐地,整个事情开始减慢,帧速率下降到可见的水平。最初我认为这是因为每个点都需要存储在RAM中,而且它们太多了,但是标签的内存似乎并没有明显增加。 CPU使用率似乎迅速上升到约20%,并且通常会保持在那里。有没有人对此有解释或解决方法?
答案 0 :(得分:2)
好的,我对此进行了一些阅读。您不断添加到框架中的ship.path
标记回调。尝试限制路径的最大大小,如下所示:
var MAX_SEGMENTS = 1000
ship.path.add(centroid(ship.shipPath));
function onFrame(event) {
if (ship.path.length > MAX_SEGMENTS)
{
var d = ship.path.length - MAX_SEGMENTS
ship.path.removeSegments(0, d)
}
更新sketch