如何更改for循环中的圆圈位置?

时间:2016-05-13 02:12:54

标签: javascript

这里有初学者问题,我会在这里发布所有代码,但我相信语法不同,因为我使用codeHS来学习Javascript。

如果我使用for循环播放圈子,例如

npm-install: command := install
npm-install: arg := --no-shrinkwrap
npm-update: command :=  update
npm-update: arg :=--save-dev

npm-install npm-update:
        ....
        $(NPM_BIN) $(command) $(arg) --loglevel=error --no-optional
        ....

如果我后来想改变其中一个圈子的位置我该怎么做?圆圈都是用var圆圈制作的,所以如果使用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); } 我怎么告诉它要修改哪个圆圈?或者我是否必须为每个圆创建一个变量,以便可以修改它们的位置。

1 个答案:

答案 0 :(得分: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]);