paper.js 动态删除和添加新点到现有的移动(动画)路径

paper.js remove and add new points dynamically to existing, moving (animated) path

我正在研究这个原型 click me (updated)。我遇到的问题如下。您可以使用 (W,A,S,D) 或 (up,left,down,right) 来移动您的蛇(路径),意思是当您撞到另一条蛇(路径交叉点)时,您正在吃掉他(他正在失去他的部分(点),而你正在获得新的部分(点)。删除点并不完美,但它有效。这是代码:

    var intersections = myPath.getIntersections(testWorm);
    for(var i = 0; i < intersections.length; i++) {
        testWorm.segments[i].remove();
    }

它可以进行一些调整,但主要是它能正常工作。

但是附加新点的代码不起作用。这是代码:

    var length = 15; // initial points length
    length++; // increase initial points length to meet algorithm
    var start = new paper.Point(Math.random()*100,Math.random()*100); // calculate start for new point
    myPath.add(new paper.Point(myPath._segments * length + start.x, 0 + start.y)); // add new point
    /* it was suppose to fix problem */ myPath.smooth();
    /* it was suppose to fix problem */ view.update();

如您所见,在您尝试与蠕虫相交的那一刻,蠕虫消失了。但是没有错误的控制台日志,所以我不明白出了什么问题。

感谢大家的帮助 ;)

我不确定这部分代码应该做什么,但我很确定它会产生 NaN,这意味着您的点将具有无效坐标并且无法绘制:myPath._segments * length。此外,您不应访问 'private' 属性(以 '_' 开头),而是使用 myPath.segments.