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

时间:2015-09-07 08:06:20

标签: javascript canvas paperjs

我正在研究这个原型click me (updated)。我遇到的问题是如下。你可以用(W,A,S,D)或(向上,向左,向下,向右)来移动你的蛇(路径),这个想法就是当你碰到另一条蛇(路径交叉点)时你正在吃他(他正在失去他的部分(分数)而你正在获得新的部分(分数)。删除分数并不完美但是它有效。这就是代码:

    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();

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

感谢您的帮助;)

1 个答案:

答案 0 :(得分:1)

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