2016-05-13 41 views
0

初學者問題在這裏,我會發布所有的代碼在這裏,但我相信語法是不同的,因爲我使用codeHS來學習Javascript。如何更改for循環中圈的位置?

如果我用髮圈for循環如

for (var i = 0; i < NUM_CIRCLES; i++) { 

    var circle = new Circle(RADIUS); 
    var x = Randomizer.nextInt(RADIUS, getWidth() - RADIUS); 
    var y = Randomizer.nextInt(RADIUS, getHeight() - RADIUS); 
    circle.setPosition(x, y); 
    circle.setColor(Randomizer.nextColor()); 
    add(circle); 

} 

如果我後來想改變界如何將我做的一個位置?圓圈都是用var圓圈做成的,所以如果使用circle.setPosition(x,y)我該如何告訴它要修改哪個圓圈?或者我需要爲每個圓圈創建一個變量,以便修改它們的位置。

回答

1

保持你的圈子對象的理貨,您可以通過位置訪問他們的陣列或一個標識符,你可以添加到對象

var circleAggregator = []; 
for (var i = 0; i < NUM_CIRCLES; i++) { 
    var circle = new Circle(RADIUS); 
    circleAggregator.push(circle); // index used as identifier 
    // you can add another identifier by updating constructor 
    var x = Randomizer.nextInt(RADIUS, getWidth() - RADIUS); 
    var y = Randomizer.nextInt(RADIUS, getHeight() - RADIUS); 
    circle.setPosition(x, y); 
    circle.setColor(Randomizer.nextColor()); 
    add(circle); 
} 

...以後當你想訪問你的對象,找到它通過它的識別符,在這種情況下是索引

var selectedCircle = circleAggregator[idx]; 

或用更新方法

updateCirclePosition(circleAggregator[idx]);