2015-09-07 46 views
0

我正在這個原型click me (updated)。我遇到的問題在於。你可以用(W,A,S,D)或(上,左,下,右)移動你的蛇(路徑),想法是當你碰到另一條蛇(路徑交點)時,你正在吃他(他。在失去他的部分(點)和你得到新的部件(點)拆卸點是不完美的,但它的工作原理這是代碼:paper.js刪除並動態添加新的點到現有的,移動(動畫)路徑

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

取出平滑以更好地瞭解您的細分受到怎樣的影響。並嘗試將註釋放入代碼中,以便人們瞭解正在發生的事情。將你的變量重命名爲myPath和testWorm中的worm1和worm2,以便更清楚地發生什麼。我做了一個快速測試,看起來有點工作,有點添加點? – Christoph

+0

我更新了問題中的鏈接,添加了評論並清除了一些代碼。所以對我來說,當我嘗試它。它不起作用,當你穿過其他蠕蟲時,我的蠕蟲正在消失。並沒有在javascript中的錯誤。東西顯然不好 – Mevia

+0

當我取出平滑它的作品http://jsfiddle.net/jrzxbkrf/1/ – Christoph

回答

1

我不知道是什麼這部分代碼是應該做的,但我敢肯定它會產生NaN,這意味着你的觀點將有一個無效座標不能繪製:myPath._segments * length。此外,您不應該訪問'私人'屬性(從'_'開始),而應使用myPath.segments