我有一组代码,我从youtube上的某人那里复制而且我完全理解并且那里有一些未使用的逻辑,但基本上目前它只是抓住rocket.show函数并绘制一个矩形我不能为我的生活找出原因,为什么不这样做。它没有抛出任何错误并绘制背景,如果我只是将“rect ...”的代码放在绘制函数中,我可以绘制矩形,因此我指的是函数的方式有问题但是我不能为我的生活工作,代码在下面,任何帮助将不胜感激。
function setup() {
createCanvas(800, 600);
background(0);
rocket = new rocket();
}
function draw() {
rocket.update;
rocket.show;
}
function rocket() {
this.pos = createVector();
this.vel = createVector();
this.acc = createVector();
this.applyforce = function (force) {
this.acc.add(force);
}
this.update = function () {
this.vel.add(this.acc);
this.pos.add(this.vel);
this.acc.mult(0);
}
this.show = function () {
push();
translate(this.pos.x, this.pos.y);
rotate(this.vel.heading());
rectMode(CENTER);
rect(0, 0, 10, 50);
pop();
}
}
编辑:我解决了,抱歉占用了不必要的发布空间
答案 0 :(得分:0)
在rocket.update
后,它需要如下所示:
rocket.update();
。我的坏。
答案 1 :(得分:0)
你没有正确地调用你的功能。
在javascript中,函数是变量,因此我可以说a = Math.floor
,然后我可以调用a(1.76)
并获取1
作为响应。但这意味着,无论何时调用函数,即使不使用参数,也必须包含参数。您可以使用一组空括号来完成此操作。如果您不包括这些括号,那么您所做的主要是调用console.log(whatever function)
。
在您的情况下,这意味着您需要将rocket.update
和rocket.show
替换为rocket.update()
和rocket.show()