Python 在pygame中使用计时器触发某些东西

Python 在pygame中使用计时器触发某些东西,python,timer,pygame,Python,Timer,Pygame,我正在努力寻找一种方法来制作一个计时器,它可以每2秒闪烁一次这张图片。这是一张网的图像,旨在将我的玩家困在我的平台游戏中。这张网是从一架直升机上撒下的,我不想详述。目前,网速下降了一次,我希望它每2秒都能连续下降。任何帮助都将不胜感激 class Net: def __init__(self,x,y): self.x = x self.y = y self.width = 60 self.height = 30 self.velocity = 0

我正在努力寻找一种方法来制作一个计时器,它可以每2秒闪烁一次这张图片。这是一张网的图像,旨在将我的玩家困在我的平台游戏中。这张网是从一架直升机上撒下的,我不想详述。目前,网速下降了一次,我希望它每2秒都能连续下降。任何帮助都将不胜感激

class Net:
def __init__(self,x,y):
    self.x = x
    self.y = y
    self.width = 60
    self.height = 30
    self.velocity = 0
    self.netimage = pygame.image.load("Images/net.png")
    self.GroundCollision = False

def drop(self, heli, player, gravity):
    screen.blit(self.netimage, (self.x,self.y))
    self.velocity += gravity
    self.y += self.velocity

这就是我在游戏中所做的:

  • 我创建了一个名为timer的变量,并将其设置为0
  • 每一个循环,我用模来检查定时器变量
  • 如果计时器%something==0,则执行该操作
  • 如果您想更改帧速率,使用名为“fps”的变量也很有帮助

    只需在while循环之前键入
    timer=0

    然后在while循环中键入以下代码:

    clock.tick(fps)
    timer += 1
    if timer % (fps * 2) == 0: #executes the following every 2 seconds
        Net.drop()
    

    这就是所需要的一切!玩得开心

    mainloop
    中调用
    Net.update()
    ,它将当前时间与
    Net.time\u到blit\u图像进行比较
    ,并在blit之后设置
    Net.time\u到blit\u图像=当前时间+2秒
    。您可以使用
    pygame.time.get_ticks
    获取当前时间。或者使用
    pygame.time.set_timer()
    获取当前时间的可能副本