如何在保持程序的其余部分 运行 正常速度的同时定期更改变量?

How do I change a variable periodically while keeping the rest of my programming running at normal speed?

我正在尝试制作一款类似于 cookie-clicker 的游戏,但我遇到的问题是我想每秒更改一次 "money" 变量,同时保留程序的其余部分运行 正常速度。 (即当您单击按钮调出菜单时,刷新不会花一秒钟。

创建一个线程,允许您同时执行 运行 个任务:

from threading import *
import time

class CookieThread(Thread):
    def __init__(self, rate):
        self.money = 0
        self.rate = rate
        self.running = False
        super(Thread, self).__init__()

    def start(self):
        self.running = True
        super(Thread, self).start()

    def run(self):
        while self.running:
            self.money += self.rate
            time.sleep(1) # wait a second

现在创建一个线程并启动它:

cookie = CookieThread(10)
cookie.start()

您有两个主要选择(Python,或任何语言):

  • 创建线程(无限循环执行,每n秒唤醒一次异步工作),或

  • 创建一个计时器(每 N 秒异步跳转到您的 "interrupt handler")。

这里有一个很好的线程教程:

这是一个简单的 "alarm" 处理程序:

https://docs.python.org/3/library/signal.html

import signal, os

def handler(signum, frame):
    print('Signal handler called with signal', _)

# Set the alarm to fire every second
signal.signal(signal.SIGALRM, handler)
signal.alarm(1)

# ... Do stuff - the alarm will keep firing ...

# Done: clear alarm
signal.alarm(0)