2017-04-03 65 views
0

我基本上都想在每次調用函數時更改一個字符的位置。每次調用函數時移動到數組中的下一個項目JavaScript

因此,這是我打電話給我的功能,

timer = game.time.create(false); 
timer.add(2000, this.toggleCurrentCharacter, this); 
timer.start(); 

而且我的函數調用看起來像這樣,

toggleCurrentCharacter:function() { 
     var characterArr = [characterA, characterB, characterC]; 
     var characterPosArr = [LEFT_CENTER, CENTER, RIGHT_CENTER]; 

     characterA.alignIn(columnLeft, Phaser.CENTER); 
     characterB.alignTo(columnLeft, Phaser.RIGHT_CENTER); 
     characterC.alignTo(columnLeft, Phaser.LEFT_CENTER); 

     console.log("Testing"); 

     timer.add(2000, this.toggleCurrentCharacter, this); 
} 

timer.add只是確保我的功能不斷地運行。

每次函數運行我想改變我有一個精靈的對齊,所以你看到的RIGHT_CENTERCENTER等。

我想我需要一個數組來迭代,但我無法理解並弄清楚每次我調用函數時,Phaser.RIGHT_CENTER都會迭代,例如,下次我調用函數時Phaser.RIGHT_CENTER現在看起來像Phaser.CENTER等。

感謝

+0

遞歸?將當前的pos保存在全局變量中?只是我的前兩個想法。 –

回答

1

您可以編寫一個函數叫做旋轉:

function rotate(array) { 
    return array.splice(1).concat(array); 
} 

或任意數量的其他排列的:

function rotate(array) { 
    return array.concat(array.shift()); 
} 
+0

這隻似乎重新排序一次?即使我一直這麼叫,它只是重新排序一次。或者至少,只能以一種特定的方式重新排序。每次我打電話時,我一直試圖讓它迭代。舉例來說; [1,2,3]然後是[3,2,1],然後是[2,3,1]並再次回到[1,2,3] – PourMeSomeCode

相關問題