为什么在实例模式下使用 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);

您还必须对其他变量执行此操作,例如 mouseXmouseY