2013-11-12 2 views
0

Может ли кто-нибудь помочь мне с помощью таймера в python ?, то, что мне нужно, это то, что метод Handle_caught должен содержать таймер, который заставляет игроков увеличивать скорость в течение пяти секунд, игроки скорость увеличивается при изменении глобальной переменной на True.Таймер в игре на Python

Скорость лексема Класс:

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 

ответ

1

Вы можете установить speedbuff до целого значения (количество кадров для питания до последнего) , вместо boolean, а в методе обновления игрока уменьшите его до 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:, если бы вы были так склонны.

Смежные вопросы