更新:忘了说,我正在使用p5.js编辑器。草图的其余部分可以工作,并加载图像。
当我在浏览器中运行此代码时,我得到的是“createVector未定义”#39;根据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();
}
答案 0 :(得分:2)
我不是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>