目录
pygame.time
pygame中监测时间的模块
pygame中的时间是以毫秒(千分之一秒)表示的。大部分平台上的时间精度被限制在10毫秒。
1. pygame.time.get_ticks
获得以毫秒表示的时间。
pygame.time.get_ticks(): return milliseconds
返回pygame.init后经过的时间的毫秒数。在pygame被初始化前,这个值总是0。
2. pygame.time.wait
暂停程序等待特定的时间
pygame.time.wait(milliseconds): return time
这个函数会暂停给定的时间。这个函数会休眠这个进程,使得其他程序可以共享处理器。一个程序即使只有休眠很少的毫秒数,就能够消耗非常少的处理器时间。这个函数比pygame.time.delay的精度要稍微差一点。
这个函数返回实际经过的时间。
3. pygame.time.delay
暂停程序给定的时间
pygame.time.delay(milliseconds): return time
这个函数暂停给定的毫秒数。这个函数会使用处理器(而不是休眠)以使这个等待比pygame.time.wait更加精确。
这个函数返回实际经过的时间毫秒数。
4. pygame.time.set_timer
反复创建一个事件放在事件队列中
pygame.time.set_timer(eventid, milliseconds): return None
每隔给定的毫秒数,指定事件类型的事件就会在事件队列中出现一次。第一次事件会在给定时间到了以后才会出现。
每一个事件类型可以有一个不同的定时器。最好使用在pygame.USEREVENT和pygame.NUMEVENTS之间的值。
要禁止一个事件的定时器,可以把对应的毫秒数设成0。
5. pygame.time.Clock
创建一个跟踪时间的对象
pygame.time.Clock(): return Clock
创建一个新的Clock对象,可以用来跟踪总共的时间。它也提供了几个方法帮助控制游戏的帧速。
5.1. Clock.tick
更新时钟
Clock.tick(framerate=0): return milliseconds
控制定时器事件
这个方法应该每一帧都调用一次。它会计算前一次调用至今过了多少毫秒。
如果你传一个可选的帧速参数,这个函数会保持游戏以不超过给定的速度运行。这可以帮助限制游戏运行的速度。通过每帧调用一次Clock.tick(40),这个程序就永远不会以超过每秒40帧的速度运行。
注意这个函数使用SDL_Delay函数,它不是在每个平台上都很精确的,但是它不会耗很多CPU。如果要使用更精确的定时器并不在乎占用CPU,可以使用tick_busy_loop。
5.2. Clock.tick_busy_loop
更新时钟
Clock.tick_busy_loop(framerate=0): return milliseconds
控制定时器事件
这个方法应该每一帧调用一次。它会计算前一次调用至今过了多少毫秒。
如果你传一个可选的帧速的参数,这个函数会让游戏以不超过给定的速度运行。这个函数可以用来帮助限制游戏运行的速度。通过每一帧调用一次Clock.tick(40),这个程序永远不会以超过每秒40帧的速度运行。
注意这个函数使用pygame.time.delay,会使用很多cpu来进行忙等,而定时也更精确一些。
5.3. Clock.get_time
前一次tick所使用的时间
Clock.get_time(): return milliseconds
返回前一次传给Clock.tick的参数。它是前两次tick()调用之间经过的毫秒数。
5.4. Clock.get_rawtime
前一次tick使用的实际时间
Clock.get_rawtime(): return milliseconds
和Clock.get_time类似,只是这个函数不包括Clock.tick延时的时间。
5.5. Clock.get_fps
计算时钟的帧速
Clock.get_fps(): return float
计算游戏的帧速(每秒的帧数)。它通过计算最后几次的Clock.tick的平均来实现。