我正在尝试实现一个时钟/计时器。到目前为止,它是有效的,但唯一的问题是我需要将frameRate设为1,但它会影响整个程序的frameRate。如何仅为时钟函数更改frameRate?
def clock():
global sec, minutes, hours, col
sec+=1
if(sec == 60):
sec = 0
minutes+=1
if(minutes == 60):
minutes = 0
hours+=1
if(hours == 24):
hours = 0
minutes = 0
sec = 0
textSize(25)
fill(255, 0, 0)
text(floor(sec), 185, 110)
text(floor(minutes), 135, 110)
text(floor(hours), 85, 110)
if(sec % 2 == 0):
col = color(0)
else:
col = color(255, 0, 0)
fill(col)
textSize(30)
text(":", 120, 110)
text(":", 170, 110)发布于 2020-12-09 17:29:31
您不能只为一个函数更改帧速率,因为它没有意义:处理的draw()函数是以定义的帧速率在循环中调用的(假设它每秒固定在60次,尽管实际上它可能会改变)。当您使用frameRate()函数更改此值时,您将更改调用draw()函数的速度,因为它调用了您的所有其他函数,所以您不能仅为特定函数定义该值。
但是,您还有其他方法来实现时钟/计时器功能:
First processing提供几个时间函数:
millis()返回自程序启动以来的毫秒数。您可以让draw()调用clock()函数,使其将millis()转换为秒、分钟、小时等数字……这样你就不必自己记录时间了,这将大大简化你的代码。根据您想要做什么,您还可以使用second()、minute()和"Time & Date“部分中的所有功能访问您的计算机时钟
其次,您可以使用python as shown in this SO question的time模块,它有点类似于millis()的思想,但使用的是原生python函数。
最后,仍然取决于您的需要,您可能希望查看python的Timer对象,以便在draw()循环之外以定义的时间间隔执行clock()函数,但这是完全可能的,而且对于编程新手来说,这并不直接,并且可能很棘手。
https://stackoverflow.com/questions/65211439
复制相似问题