这是来自processing.js教程的widthheight.html示例的修改循环
flag=1;
for(int i=0; i<height; i+=20)
{ if (flag)
{ fill(0); rect(0, i, width, 10);
fill(255); rect(i, 0, 10, height);
if (mousePressed()){flag=0; }
if (mouseReleased()){flag=1; }
}
}
我添加了标志和mousePress的东西试图逐步完成,但是循环步骤一次,然后不再运行它。并且它不关注鼠标。
标志本身似乎控制着循环,但我认为无法以交互方式设置它。
我也尝试用noLoop和loop替换标志,并且不会重新启动它。
我在命令列表中看不到任何会在循环内暂停甚至延迟的命令。
有办法吗?
答案 0 :(得分:0)
noLoop()
函数将停止每秒调用draw()
循环60次。
我认为您的问题可能是由以下几行引起的:
if (mousePressed())
if (mouseReleased())
这不是这些功能的工作原理。这些都是您必须自己定义的函数,然后当按下或释放鼠标时,Processing会为您调用。像这样打电话给他们没有任何意义。您可能正在寻找mousePressed
变量。
我建议你阅读处理中的输入this tutorial。
编辑:以下是几个基本示例:
void draw(){
if(mousePressesd){
ellipse(mouseX, mouseY, 20, 20);
}
}
此示例仅在按下鼠标时绘制内容。请注意,我使用的是mousePressed
变量,而不是尝试调用函数。
或者您可以使用noLoop()
和loop()
功能,如下所示:
void draw(){
ellipse(mouseX, mouseY, 20, 20);
}
void mousePressed(){
noLoop();
}
void keyPressed(){
loop();
}
此示例定义了一个mousePressed()
函数,该函数在按下鼠标时自动调用,当发生这种情况时,它会暂停draw()
循环。您可以通过按键取消暂停。
退一步,我会建议您将来花点时间了解答案在解雇之前告诉您的答案。以上所有内容都在我的原始答案以及我链接的教程中进行了解释。
如果您仍然无法使其发挥作用,请发布一个MCVE来解决我在新问题帖子中指出的错误,我们将从那里开始。祝你好运。