Python游戏中的计时器

2022-05-21 06:54:19 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我用python做一个计时器吗?,我需要帮助的是'Handle\u catch'方法应该包含一个计时器,使玩家速度增加5秒,当全局变量更改为True时,玩家速度增加。你知道吗

速度令牌类:

class Addspeed(games.Sprite):
image = games.load_image('addspeed.png')
speed = 2

def __init__(self,x,y = 10):

    super(Addspeed, self).__init__(image = Addspeed.image,
                                   x = x, y = y,
                                   dy = Addspeed.speed)

def update(self):
    if self.bottom>games.screen.height:
        self.destroy()

def handle_caught(self):
    self.destroy()


def increasespeed(self):
    global speedbuff
    speedbuff = True

def decreasespeed(self):
    global speedbuff
    speedbuff = False

如何提高玩家速度:

speedbuff = False
    def update(self):
    global inventory
    global speed
    """ uses A and D keys to move the ship """

    if games.keyboard.is_pressed(games.K_a):
        if speedbuff == False:
            self.x -= 3
        elif speedbuff == True:
            self.x -= 6


    if games.keyboard.is_pressed(games.K_d):
        if speedbuff == False:
            self.x+= 3
        elif speedbuff == True:
            self.x+=6

Tags: imageselffalsetrueifinitdef玩家global速度games计时器speedspeedbuffaddspeed
1条回答
网友
1楼 ·

您可以将speedbuff设置为整数值(加电到最后的帧数),而不是布尔值,并在播放器的update方法中将其递减到0。像这样:

if games.keyboard.is_pressed(games.K_a):
    if speedbuff > 0:
        self.x -= 6
    else:
        self.x -= 3

...

if speedbuff > 0: speedbuff -= 1

由于0被解释为False,如果您愿意的话,if语句可以是if speedbuff:。你知道吗