首页 > 解决方案 > 随时间改变变量

问题描述

我对python有点陌生,我正在尝试在pygame中制作一个小游戏,其中我有一个随着时间的推移而下降的“饥饿条”,我试图每x秒寻找一个模块或函数更改变量“饥饿”,但我发现的每一个都停止所有代码,直到时钟用完。任何人都知道我怎样才能让它工作?

标签: pythonvariablestimepygameseconds

解决方案


您处于使用 pythonthreading模块的理想情况。您可以生成一个在后台连续运行的子线程,并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

推荐阅读