如何在不污染全局范围的情况下使用 p5.js?
How can I use p5.js without it polluting the global scope?
我正在尝试将我为 processing.js 编写的一些代码转换为使用 p5.js。在现有代码中,我创建了一个对象,其中包含 processing = new Processing(canvas, p => (p.draw = draw_frame))
这样的语句,其中 HTML 中定义的 canvas 为 <canvas id="canvas"></canvas>
,并且任何处理函数和属性都附加到处理目的。比如画一个三角形,我会写成self.processing.triangle(...)
这样的代码。在 p5.js 中,所有常用函数似乎都是全局定义的。有没有办法以不污染全局范围的方式使用 p5.js?
听起来您正在寻找 instance mode。
这是该页面的示例:
let myp5 = new p5(( sketch ) => {
let x = 100;
let y = 100;
sketch.setup = () => {
sketch.createCanvas(200, 200);
};
sketch.draw = () => {
sketch.background(0);
sketch.fill(255);
sketch.rect(x,y,50,50);
};
});
我正在尝试将我为 processing.js 编写的一些代码转换为使用 p5.js。在现有代码中,我创建了一个对象,其中包含 processing = new Processing(canvas, p => (p.draw = draw_frame))
这样的语句,其中 HTML 中定义的 canvas 为 <canvas id="canvas"></canvas>
,并且任何处理函数和属性都附加到处理目的。比如画一个三角形,我会写成self.processing.triangle(...)
这样的代码。在 p5.js 中,所有常用函数似乎都是全局定义的。有没有办法以不污染全局范围的方式使用 p5.js?
听起来您正在寻找 instance mode。
这是该页面的示例:
let myp5 = new p5(( sketch ) => {
let x = 100;
let y = 100;
sketch.setup = () => {
sketch.createCanvas(200, 200);
};
sketch.draw = () => {
sketch.background(0);
sketch.fill(255);
sketch.rect(x,y,50,50);
};
});