Изменить переменную с течением времени - PullRequest
1 голос
/ 28 марта 2020

Я новичок в python, я пытаюсь сделать небольшую игру в пигме, в которой у меня есть «полоса голода», которая со временем go снижается, я пытался найти модуль или функция, которые каждые x секунд изменяют переменную «голод», но каждый найденный мной код останавливает весь код, пока не истечет время. У кого-нибудь есть идея, как мне заставить это работать?

1 Ответ

2 голосов
/ 28 марта 2020

Вы находитесь в идеальной ситуации, чтобы использовать модуль python threading. Вы можете порождать дочерний поток, который непрерывно работает в фоновом режиме, и уменьшать переменную hunger на определенное значение после указанных интервалов.

Например:

import time
import threading

hunger = 100
def hungerstrike():
    global hunger
    while True:
        hunger -= 1
        time.sleep(2) # sleep for 2 seconds

def main():
    t = threading.Thread(target=hungerstrike) # start a child thread
    t.daemon = True
    t.start()

    # TODO: Do other work
    time.sleep(6)
    print("After 6 seconds, the value of hunger is:", hunger)

Выход main():

After 6 seconds, the value of hunger is: 97
...