我试图制作一款类似于点击曲目的游戏,但我遇到的问题是我想要更改" money"每秒变化一次,同时保持程序的其余部分以正常速度运行。 (即,当您单击按钮以显示菜单时,它不会花费一秒钟来刷新。
答案 0 :(得分:4)
创建一个允许您同时运行任务的线程:
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()
答案 1 :(得分:3)
您有两个主要选择(适用于Python或任何语言):
创建一个线程(在无限循环中执行,并在n秒内唤醒以异步工作),或者
创建一个计时器(异步跳转到你的"中断处理程序"每隔N秒)。
这是一个很好的主题教程:
这是一个简单的警报"处理程序:
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)