为什么我的程序不会绘制我的矩形?

时间:2016-12-27 14:06:52

标签: javascript p5.js

我有一组代码,我从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();
    }
}

编辑:我解决了,抱歉占用了不必要的发布空间

2 个答案:

答案 0 :(得分:0)

rocket.update后,它需要如下所示: rocket.update();。我的坏。

答案 1 :(得分:0)

你没有正确地调用你的功能。

在javascript中,函数是变量,因此我可以说a = Math.floor,然后我可以调用a(1.76)并获取1作为响应。但这意味着,无论何时调用函数,即使不使用参数,也必须包含参数。您可以使用一组空括号来完成此操作。如果您不包括这些括号,那么您所做的主要是调用console.log(whatever function)

在您的情况下,这意味着您需要将rocket.updaterocket.show替换为rocket.update()rocket.show()