如何在原型中使用createVector?

时间:2017-06-15 17:28:09

标签: javascript p5.js

function Childclass(){
  this.printX = function(){
    print(this.vector.y);
  }
}

function Superclass(){
  this.vector = createVector(1,2);
}

Childclass.prototype = new Superclass();

运行printX()时出现以下错误:

  

未捕获的ReferenceError:未定义createVector       在新的超类

这可能是在原型中使用createVector()吗?

1 个答案:

答案 0 :(得分:1)

来自p5 FAQ:

  

为什么我不能在setup()之前使用p5函数和变量分配变量?

     

从技术上讲,您可以使用按需全局模式。但这是p5的一种不太常见的用法,所以我们稍后会解释一下,先讨论更常见的情况。在常规全局模式下,p5变量和函数名称在setup(),draw(),mousePressed()等之外不可用(除非它们放在由这些方法之一调用的函数内。)这意味着当在setup()之前声明变量时,如果你想使用p5函数,你需要在setup()中分配它们。

解决方案本身也在FAQ中:

  

我们之前提到了按需全局模式。当您构建使用其他库的程序并且想要控制p5如何在页面上加载其他库时,此模式最有用。您可以阅读更多相关信息here。但是,按需全局模式的另一个有趣用途是能够显式调用p5然后在setup()之外使用p5函数。这是一个例子:

new p5();

var boop = random(100);

function setup() {
    createCanvas(100, 100);
}

function draw() {
    background(255, 0, boop);
}