Open 1c7 opened 11 years ago
# 放Gist里的话注释都成斜体了 很难看 所以放这里.. import pygame # 这段练习代码的目的是理解Pygame里的tick()方法 所以当然要导入Pygame了.. from time import sleep # 我们只需要里面的sleep函数 ################################################# # # 以下5行代码是为了弄清pygame里tick()方法的行为 # 之前总是对这家伙有点很迷糊的感觉 # ################################################# clock_obj = pygame.time.Clock() # 这方法返回的是一个对象 # 这对象有个tick()方法 ''' time_passed = clock_obj.tick() sleep(1) time_passed = clock_obj.tick() print (time_passed) ''' # tick()方法会返回【从上次调用到这次调用 所过去的时间】 (毫秒) # 这里的输出是 1000 # 第一次调用时当然返回的是0 (你可以把print语句移到第二句看看, 也就是移到sleep(1)前面) # 你可以把上面这4行代码的注释去掉 看看效果就清楚了 ####################################### # # 关于tick()方法的可选参数 # ####################################### # http://www.pygame.org/docs/ref/time.html#pygame.time.Clock.tick # 帧率 = 刷新率 = 某段代码在1秒内运行多少次 # tick() 方法有个可选的参数 这个参数接收数字 代表每秒运行的频率(或者说帧率, 刷新率) # 这个方法要放在循环里才有用 不然的话没什么作用 # 比如你传入的是1 也就是每秒运行1次 或者说帧率是1 # 它会先运行一遍 然后当再次运行到tick(1)时 它会延时(就像sleep()一样) # 延时时间是1秒 然后接着运行 # 它的内部也许就是用sleep实现的...(没找到源码 这只是猜测) # sleep(1000/数字参数) # 下面这个例子可能更直观些 while True: clock_obj.tick(1) print ('aaa') # 它会每秒输出一次aaa