Processing 处理:使用延迟功能时渲染停止
我为我的草图创建了一个简单的延迟函数,并尝试使用它,但似乎渲染停止了,即出现了一个简单的灰色屏幕,然后所有内容都立即渲染Processing 处理:使用延迟功能时渲染停止,processing,Processing,我为我的草图创建了一个简单的延迟函数,并尝试使用它,但似乎渲染停止了,即出现了一个简单的灰色屏幕,然后所有内容都立即渲染 有人能告诉我哪里出了问题吗?到底发生了什么事? 还有,draw()和setup()是如何在内部定义的?我知道setup()是一个一次性的render and draw(),就像一个无限循环 代码: 无效延迟(整数延迟) { 整数时间=毫秒(); while(毫秒()-时间 还有,draw()和setup()是如何在内部定义的?我知道setup()是一次性渲染>和draw(),
有人能告诉我哪里出了问题吗?到底发生了什么事?
还有,draw()和setup()是如何在内部定义的?我知道setup()是一个一次性的render and draw(),就像一个无限循环 代码:
无效延迟(整数延迟)
{
整数时间=毫秒();
while(毫秒()-时间
还有,draw()和setup()是如何在内部定义的?我知道setup()是一次性渲染>和draw(),就像一个无限循环
问题是draw()只在每次执行结束时渲染一个帧,因此停止它通常不是一个好主意
如果你想计时的话,就用布尔值作为什么时候该发生的标志
请同时检查以下各项:
如果需要延迟,请使用Thread()对象,如以下代码,在单独的线程中运行延迟:
void delay(int delay)
{
try
{
Thread.sleep(delay);
}
catch(Exception EX)
{
}
}
void setup(){
size(600,400);
smooth();
thread("sleepy"); // the function sleepy will be started in a new thread
}
void draw(){
// draw() does nothing here except refresh the screen
}
void sleepy()
{
while(true)
{
background(0); //black
delay(1000);
fill(255); //white
ellipse(width/2, height/2, 300, 300);
delay(1000);
}
}
此外,上面的延迟方法Thread.sleep()在运行时不会消耗整个CPU内核(millis()方法类似于临时无限循环)。
在Processing 2.2.1和Windows 7 professional上进行了测试
void delay(int delay)
{
try
{
Thread.sleep(delay);
}
catch(Exception EX)
{
}
}
void setup(){
size(600,400);
smooth();
thread("sleepy"); // the function sleepy will be started in a new thread
}
void draw(){
// draw() does nothing here except refresh the screen
}
void sleepy()
{
while(true)
{
background(0); //black
delay(1000);
fill(255); //white
ellipse(width/2, height/2, 300, 300);
delay(1000);
}
}