为什么在实例模式下使用 p5.js 时没有定义常量?
Why are constants not defined when using p5.js in instance mode?
我可能遗漏了一些非常明显的东西。我可以在全局模式下使用 p5.js 并将常量用于 textAlign 没有问题,例如中心。
这是全局模式代码,它可以正常工作:
function setup() {
var canvas = createCanvas(720, 400);
canvas.parent('main_canvas');
};
function draw() {
textSize(32);
textAlign(CENTER);
text("word", 50, 50);
};
然而,当我尝试在实例模式下使用 CENTER 时,我得到:
Uncaught ReferenceError: CENTER is not defined:
这是失败的实例模式代码:
var s = function (p) {
p.setup = function() {
p.createCanvas(720, 400);
};
p.draw = function() {
p.textSize(32);
p.textAlign(CENTER);
p.text("word", 50, 50);
};
};
var myp5 = new p5(s,'main_canvas');
关于我在这里遗漏的任何想法?
在全局模式下,所有 P5.js 函数 和变量 都添加到全局命名空间。在实例模式下,所有 P5.js 函数 和变量 都添加到传递给草图函数的变量(在您的情况下,您的 p
变量)。
要使用CENTER
变量,必须通过p
变量来获取。
换句话说,你需要这样做:
p.textAlign(p.CENTER);
您还必须对其他变量执行此操作,例如 mouseX
和 mouseY
。
我可能遗漏了一些非常明显的东西。我可以在全局模式下使用 p5.js 并将常量用于 textAlign 没有问题,例如中心。
这是全局模式代码,它可以正常工作:
function setup() {
var canvas = createCanvas(720, 400);
canvas.parent('main_canvas');
};
function draw() {
textSize(32);
textAlign(CENTER);
text("word", 50, 50);
};
然而,当我尝试在实例模式下使用 CENTER 时,我得到:
Uncaught ReferenceError: CENTER is not defined:
这是失败的实例模式代码:
var s = function (p) {
p.setup = function() {
p.createCanvas(720, 400);
};
p.draw = function() {
p.textSize(32);
p.textAlign(CENTER);
p.text("word", 50, 50);
};
};
var myp5 = new p5(s,'main_canvas');
关于我在这里遗漏的任何想法?
在全局模式下,所有 P5.js 函数 和变量 都添加到全局命名空间。在实例模式下,所有 P5.js 函数 和变量 都添加到传递给草图函数的变量(在您的情况下,您的 p
变量)。
要使用CENTER
变量,必须通过p
变量来获取。
换句话说,你需要这样做:
p.textAlign(p.CENTER);
您还必须对其他变量执行此操作,例如 mouseX
和 mouseY
。