Javascript p5.js使用变量更改大小
我想知道如何使用无限循环更改p5中对象的大小/位置。 出于某种原因,这不起作用Javascript p5.js使用变量更改大小,javascript,p5.js,Javascript,P5.js,我想知道如何使用无限循环更改p5中对象的大小/位置。 出于某种原因,这不起作用 function setup() { createCanvas(400, 400); } var size=80 function draw() { noFill(); ellipseMode(CENTER); rectMode(CENTER); background(220); ellipse(40,40,size); rect(40, 40, size, size); }
function setup() {
createCanvas(400, 400);
}
var size=80
function draw() {
noFill();
ellipseMode(CENTER);
rectMode(CENTER);
background(220);
ellipse(40,40,size);
rect(40, 40, size, size);
}
test()
function test()
{
size=size+1
draw()
setTimeout(test, 200)
}
我该怎么做
此外,以下是错误消息:
p5.js说:由于在
当前范围(在about:srcdoc[about:srcdoc:77:3]的第77行)
如果您在代码中定义了它,您应该检查它的范围,
拼写和字母大小写(JavaScript区分大小写)。更多信息:
您是否尝试使用p5.js的noFill()函数?如果是这样的话,你可能想要
将其移动到草图的setup()函数中
有关详细信息,请参阅:
出现错误的原因是,您正在调用
noFill
之前的draw()
,eliple
,rectMode
。。。定义了etc,这似乎发生在javascript之后。您可以通过将test()
替换为setTimeout(test)
来验证这一点,因为它应该在定义p5函数之后运行代码,所以不应该出现该错误
在任何情况下,正如Samathingamajig所说,你通常不应该自己调用draw
——p5会自动调用,默认为每秒调用60次。您可以通过删除draw()
行来修复代码
下面是一个工作片段:
函数设置(){
createCanvas(400400);
}
变量大小=80
函数绘图(){
noFill();
ellipseMode(中心);
矩形模式(中心);
背景(220);
椭圆(40,40,大小);
矩形(40,40,大小,大小);
}
测试()
功能测试()
{
尺寸=尺寸+1
设置超时(测试,200)
}
通常在setup函数中调用rectMode和ellipseMode等函数。以下是您的代码的外观:
function setup() {
createCanvas(400, 400);
ellipseMode(CENTER);
rectMode(CENTER);
}
var size = 80
function draw() {
background(220);
rect(40, 40, size, size);
ellipse(40, 40, size);
noFill();
}
尝试将
setTimeout(test(),200)
更改为setTimeout(test,200)
——setTimeout需要一个函数test
是一个函数,而test()
调用一个函数,并返回一个可能有帮助的值(在本例中为未定义的
),但这不是问题所在……为什么您自己调用函数draw?p5自动从自身内部调用draw,并为其提供适当的范围。似乎您想要调用setInterval(()=>size++,200)setup
函数中的code>可以。。。你把它放在答案部分了?另外,我得到了整页的代码,这些代码恰好在模板中,我要么删除,要么让它存在。