问题
While I\'ve been using time.wait in my code since I began learning Python and Pygame, I\'ve been wondering if there are any other ways to do it and what are the advantages and disadvantages of each approach. For example, Pygame also has a pygame.time.wait. What\'s the difference between python\'s wait and pygame\'s wait functions? Which one is better? And are there other ways to wait some time besides using these two functions?
回答1:
For animation / cooldowns, etc: If you want to 'wait', but still have code running you use: pygame.time.get_ticks
class Unit():
def __init__(self):
self.last = pygame.time.get_ticks()
self.cooldown = 300
def fire(self):
# fire gun, only if cooldown has been 0.3 seconds since last
now = pygame.time.get_ticks()
if now - self.last >= self.cooldown:
self.last = now
spawn_bullet()
回答2:
For Python in general, you will want to look at the sleep library.
For Pygame, however, using pygame.time.delay() will pause for a given number of milliseconds based on the CPU clock for more accuracy (as opposed to pygame.time.wait).
来源:https://stackoverflow.com/questions/18839039/how-to-wait-some-time-in-pygame