Createvector 是未定义的 p5js

Createvector is undefined p5js

更新:忘了说,我正在使用 p5.js 编辑器。草图的其余部分有效,并加载图像。

当我在浏览器中 运行 这段代码时,我得到 'createVector is undefined'。根据 p5.js 的参考资料,我使用了正确的语法。

知道哪里出了问题吗?

var img;
var bg = 100;

var velocity = createVector(0,0);
var acceleration = createVector(0,0);

function setup() {
  createCanvas(720, 400);
  img = loadImage("assets/bb8body.png");
}

function keyPressed() {
    if (keyIsPressed === true) {
        if (key === 'd') {
            acceleration++;
            velocity.add(acceleration);

            console.log(vx);
        }
    }
}

function damping(){

}

function draw() {
    keyPressed();
    background(bg);
  image(img, velocity, 0);
  damping();
}

我不是 100% 为什么,但是 createVector()setup() 工作(不是在外面)。 此外,我发现了两个小错误:

acceleration++;

这行不通,因为 js 不支持像 c++ 这样的重载运算符,但您可以使用 p5.Vector 的 add() 函数。 此外,vx 变量在您的其余代码中不存在。

这是您的代码的修改版本,使用 p5.Vector 个实例,但为了测试目的绘制了一个小框而不是图像。您可以 运行 下面的演示:

var img;
var bg = 100;

var velocity;// = createVector(0,0);
var acceleration;// = createVector(0,0);

function setup() {
  createCanvas(720, 400);
  velocity = createVector(0,0);
  acceleration = createVector(0,0);
  //img = loadImage("assets/bb8body.png");
}

function keyPressed() {
    if (keyIsPressed === true) {
        if (key === 'd') {
            //acceleration++;
            acceleration.add(1,1);
            velocity.add(acceleration);

            //console.log(vx);
            console.log(velocity.x);
        }
    }
}

function damping(){

}

function draw() {
    keyPressed();
    background(bg);
    rect(velocity.x,velocity.y,20,20)
  //image(img, velocity, 0);
  damping();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.4.22/p5.min.js"></script>