【发布时间】:2013-09-22 20:29:47
【问题描述】:
我在互联网上进行了广泛搜索,但找不到适合同时运行我的两个功能的情况。基本上,一个函数包含使用箭头键移动笑脸的代码,另一个函数使红色圆圈从屏幕顶部落下。这是我在main.py 中的代码:
import game, prepare
from multiprocessing import Process
prepare.setuppygame()
prepare.setupSM()
prepare.setupRC()
#display score for the first time
prepare.disscore()
#set starting positions for first time
game.setStartingPositions()
if __name__ == '__main__':
p1 = Process(target=game.go)
p1.start()
p2 = Process(target=game.RCfall)
p2.start()
p1.join()
p2.join()
我没有得到一个带有下落圆圈和移动笑脸的能力的屏幕;我得到一个带有笑脸的屏幕,你可以四处移动,另一个 pygame 屏幕有一个下降的圆圈,但不能在一起。为什么多处理不起作用?我也愿意使用线程,如果它们可以工作的话。
基础架构:Geany、Python2.7、Windows 7,但为 Raspberry Pi 编程
【问题讨论】:
-
您不需要多处理甚至多线程来执行此操作。使用单个进程和单个线程很容易做到这一点。
-
同意ShashankGupta;您将需要一个主循环和一个
tick函数,该函数每帧更新所有元素。这将比进程或线程更容易和更快。 -
你是怎么做到的?我对python有点陌生,不明白。我也没有使用精灵。当然,如果您更新每一帧,那么仍然会有延迟,因为它们没有同时运行?
标签: python multithreading python-2.7 multiprocessing pygame