我正在研究这个原型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();
正如您所看到的,在您尝试与蠕虫消失器相交的那一刻。但是没有错误的控制台日志,所以我不明白出了什么问题。
感谢您的帮助;)
答案 0 :(得分:1)
我不确定这部分代码应该做什么,但我很确定它会产生NaN
,这意味着你的点将有一个无效的坐标,无法绘制:{ {1}}。此外,您不应访问“私有”属性(以myPath._segments * length
开头),而是使用'_'
。