#javascript #p5.js
#javascript #p5.js
Вопрос:
Вероятно, я здесь упускаю что-то очень очевидное. Я могу использовать p5.js в глобальном режиме и без проблем используйте константы для выравнивания текста, например, ПО ЦЕНТРУ.
Вот код глобального режима, в котором он работает нормально:
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');
Есть идеи о том, чего мне здесь не хватает?
Комментарии:
1. Цель режима экземпляра — сохранить все, что связано с p5.js вне глобального пространства имен даже такие константы, как
CENTER
, так что это сделано специально.
Ответ №1:
В глобальном режиме все P5.js функции и переменные добавляются в глобальное пространство имен. В режиме экземпляра все P5.js функции и переменные добавляются к переменной, переданной в функцию sketch (в вашем случае, к вашей p
переменной).
Чтобы использовать CENTER
переменную, вы должны получить доступ к ней через p
переменную.
Другими словами, вам нужно сделать это:
p.textAlign(p.CENTER);
Вам также придется делать это с другими переменными, такими как mouseX
и mouseY
.
Комментарии:
1. Стыд, который я чувствую сейчас, не знает границ. Спасибо.
2. @e_r Я думаю, вы только что описали 75% всего программирования! :p