【发布时间】:2026-02-13 23:35:01
【问题描述】:
我有一个“sketch.js”,我想在其中实例化多个画布并在其中显示一个类的不同对象。
sketch.js:
var myObjects = [];
var sketch1 = function (p) {
p.setup = function () {
p.createCanvas(600, 400);
}
p.draw = function () {
p.background(51);
p.rect(p.width/2, p.height/2, 200, 200);
}
};
new p5(sketch1, "canvas_container");
var sketch2 = function (p) {
p.setup = function () {
p.createCanvas(600, 400);
myObjects.push(new myObject(p, 1, 2));
myObjects.push(new myObject(p, 3, 4));
}
p.draw = function () {
p.background();
for (var i=0; i<myObjects.length; i++) {
p.line(0, 0, myObjects[i].x, myObjects[i].y);
myObjects[i].doSomething(Math.random()*10);
}
}
};
new p5(sketch2, "canvas_container");
我什么时候使用“这个”。当“p”在这种情况下? 此外,我想在我的 sketch.js 文件中使用 p5 库中的一些“其他”方法,在实例之外,例如:
select('..') ...
但我得到了错误:
select is not defined
我发现自己是一个肮脏的解决方法:
new p5().select('...') ...
这样做的干净方法是什么?
myObjects.js
function myObject(canvas, x, y) {
this.canvas = canvas;
this.x = x;
this.y = y;
this.doSomething = function(rad) {
this.canvas.ellipse(this.x, this.y, rad, rad);
}
}
有没有人处理多个画布实例的例子?
【问题讨论】:
标签: javascript oop canvas instances p5.js