不确定我是否弄错了范围,但我尝试将功能稍微移动一下,但这只是给我的提示,不是功能错误。
let bubbles = [];
function setup() {
createCanvas(400, 400);
for (let i = 0; i < 10; i++){
bubbles[i] = new Bubble(200, 200, 40)
}
}
function draw() {
background(0);
for (i = 0; i < bubbles.length; i++){
bubbles[i].show();
}}
function show() {
stroke(20);
strokeWeight(2);
fill(random(255), 0, random(255))
ellipse(this.x, this.y, this.r * 2)
}
class Bubble {
constuctor(x, y, r){
this.x = x;
this.y = y;
this.r = r;
}}
答案 0 :(得分:1)
正如Rabbid76的评论所述,您的主要问题是您正在Bubble
对象中调用一个不存在的函数。因此,您应该将其弹出到Bubble
类中:
class Bubble {
constructor(x, y, r){
this.x = x;
this.y = y;
this.r = r;
}
show() {
stroke(20);
strokeWeight(2);
fill(random(255), 0, random(255))
ellipse(this.x, this.y, this.r * 2)
}
}
另外,只要您知道您遗忘了constructor
,并且如果您使用的是p5在线编辑器,它就不会将其标记为错误,它认为您已经定义了一个名为{{1} },这是完全有效的语法。
另一件事,您将每个气泡的x和y位置传递为200、200,这基本上意味着每个气泡都将彼此重叠,我假设您希望它们散布在屏幕周围:
constuctor
哦,还有,您可能想将r,g,b颜色存储在bubbles[i] = new Bubble(random(width), random(height), 20);
对象中,这样就不会在每一帧中都选择已知颜色!