Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript p5.js使用变量更改大小_Javascript_P5.js - Fatal编程技术网

Javascript p5.js使用变量更改大小

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); }

我想知道如何使用无限循环更改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);
  
}
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>可以。。。你把它放在答案部分了?另外,我得到了整页的代码,这些代码恰好在模板中,我要么删除,要么让它存在。