Canvas 对象没有改变 X 位置?

Canvas object not changing X position?

我试图在每个 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>

您每帧都在重新创建 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;
}