画布对象不改变X位置?

时间:2018-11-07 06:37:43

标签: javascript p5.js

我正在尝试在每个draw()上将对象的X位置更改为1。但是,椭圆形没有移动,而且没有出现任何错误。

function setup() {
    createCanvas(windowWidth, windowHeight - 4);
}

function windowResized() {
    resizeCanvas(windowWidth, windowHeight - 4);
}

function draw() {
    background(51, 51, 51);

    var el1 = {
        x: 100,
        y: 100,
        width: 50,
        height: 50
    };

    var el2 = {
        x: 300,
        y: 300,
        width: 50,
        height: 50
    };

    ellipse(el1.x, el1.y, el1.width, el1.height);
    ellipse(el2.x, el2.y, el2.width, el2.height);
    el1.x = el1.x + 1;

}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.2/p5.js"></script>

1 个答案:

答案 0 :(得分:1)

您将在每个帧中重新创建el1el2变量,因此您将以它们的默认值重新启动它们。

如果要修改单个el1变量,则需要在草图顶部声明它。

比较此代码:

function draw(){
  var x = 42;
  console.log(x); // always prints 42
  x = x + 1;
}

此代码:

var x = 42;

function draw(){
  console.log(x);
  x = x + 1;
}