【问题标题】:Running two functions simultaneously on Python在 Python 上同时运行两个函数
【发布时间】: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


【解决方案1】:

我相信在 pygame 网站上阅读本教程

http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html

会给你一个关于如何简单地完成你想要的东西的想法。它显示了如何在使用光标移动控制图像时使图像在屏幕上自行移动。不是你想要的,但非常接近。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-20
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多