问题描述
我需要在另一个线程中使用pygame,即pygame循环和所有渲染都在单独的线程上。我不能在主线程中使用pygame。
我听说有些环境不喜欢在主线程之外进行渲染,但是我无法在线找到任何确认或示例。
那么,在单独的线程上运行pygame是否安全?如果不是,那么在单独的进程上使用pygame是否安全?如果没有,我有什么选择?
请明确一点,我想做这样的事情:
from threading import Thread # should I use multiprocessing.Process?
import pygame as pg
def run_game():
pg.init()
screen = pg.display.set_mode(...)
running = True
while running:
# all pygame event handling and logic
pg.dispaly.flip()
if __name__ == "__main__":
t = Thread(target=run_game,args=()) # should be Process?
t.start()
# do other things on the main thread
t.join()
在我的机器上(Windows 10,Python 3.7.9),该示例可以很好地工作,并且还可以与multiprocessing.Process
而不是threading.Thread
一起使用。我不知道它是否可以在所有平台上都可以使用,更复杂的示例是否可以在我的计算机上使用。
那么,这是否安全,或者我需要做一些其他事情才能使它起作用?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)