2017-04-03 66 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

相关问题