我可能在这里遗漏了一些非常明显的东西。我可以在全局模式下使用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');
关于我在这里缺少的任何想法?
答案 0 :(得分:3)
在全局模式下,所有P5.js函数和变量都会添加到全局命名空间中。在实例模式中,所有P5.js函数和变量都会添加到传递给sketch函数的变量中(在您的情况下,是您的p
变量)。
要使用CENTER
变量,您必须通过p
变量获取它。
换句话说,你需要这样做:
p.textAlign(p.CENTER);
您还必须使用其他变量执行此操作,例如mouseX
和mouseY
。