Python 如何在保持其余程序以正常速度运行的同时定期更改变量?
我正在尝试制作一个类似于cookie clicker的游戏,但我遇到的问题是,我希望每秒更改一次“money”变量,同时保持程序的其余部分以正常速度运行。(即,当您单击按钮打开菜单时,不需要一秒钟即可刷新。制作一个线程,允许您同时运行任务:Python 如何在保持其余程序以正常速度运行的同时定期更改变量?,python,pygame,Python,Pygame,我正在尝试制作一个类似于cookie clicker的游戏,但我遇到的问题是,我希望每秒更改一次“money”变量,同时保持程序的其余部分以正常速度运行。(即,当您单击按钮打开菜单时,不需要一秒钟即可刷新。制作一个线程,允许您同时运行任务: from threading import * import time class CookieThread(Thread): def __init__(self, rate): self.money = 0 sel
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秒异步跳转到“中断处理程序”)
看看这个:但是你正在使用Pygame。为什么不把它放在你的游戏循环中呢?警报会打断Pygame的游戏循环吗?还是在一个单独的线程中?
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)