Страницы

Поиск по вопросам

четверг, 9 января 2020 г.

Необходимо реализовать регенерацию в игре на python

#python #разработка_игр #pygame


Пишу игру на python с помощью pygame, пытался создать регенерацию единицы здоровья
раз в 5 секунд, если здоровье неполное.

def temp(self):
     while True: # бесконечный цикл
        self.health += 1
        time.sleep(5) # раз в 5 сек

# функция запуска регена хп
def regenerating(self): 
    if self.health < self.max_health:   #если текущее хп меньше максимального
        _thread.start_new_thread(self.temp,()) #новый процес


Когда запускаю игру здоровье моментально становится полным, то есть не запускается
новый поток. Пожалуйста исправьте ошибку, или предложите свой вариант. Использую thread
поскольку игра должна оставаться активной, не ждать пока восполнится жизнь.
    


Ответы

Ответ 1



Вот так надо: def temp(self): while self.health < self.max_health: self.health += 1 time.sleep(5) # раз в 5 сек def regenerating(self): if self.health < self.max_health: th = threading.Thread(target=self.temp) th.start()

Ответ 2



вот способ без thread: def regenerating(self): if self.health>self.max_health: self.set_health(self.max_health) detecting_time=pg.time.get_ticks() if self.health < self.max_health and detecting_time%500==0: # в милисекундах 5=500 self.health += 1

Комментариев нет:

Отправить комментарий