【问题标题】:How do I deal with pause/resume methods in pygame?如何处理 pygame 中的暂停/恢复方法?
【发布时间】:2021-02-05 15:45:12
【问题描述】:

我希望我能去正确的地方。

我已经为 android 制作了一个 pygame 应用程序,但是 p4a 配方不包含某些 pygame-sdl 方法,例如 APP_WILLENTERBACKGROUND 或 APP_DIDENTERFOREGROUND。当应用程序进入后台时(它会继续运行,但在前移时图形会冻结)。当我想展示广告时,应用程序崩溃了。我了解如何在 kivy 中使用 on_pause/on_resume 方法,但我使用的是 pygame 配方。使用 pygame-sdl,我会做这样的事情:

if pygame.APP_WILLENTERBACKGROUND==TRUE:

   game_loop=False
  
elif pygame.APP_DIDENTERFOREGROUND==TRUE:

   game_loop=True

但是,有没有其他方法可以做到这一点而不必使用 pyjnius? 干杯,

尼克

【问题讨论】:

    标签: android pygame p4a


    【解决方案1】:

    您似乎在reddit 上找到了答案。我也把它贴在这里,以防其他人将来需要它。

    看来您可以使用 SDL2 常量值在 Android 上检查它们:

    for event in pygame.event.get():
        if event.type == 259: # SDL_APP_APP_WILLENTERBACKGROUND 
            print('App about to enter background')
        if event.type == 260: # SDL_APP_DIDENTERBACKGROUND
            print('App entered background')
        if event.type == 261: # SDL_APP_WILLENTERFOREGROUND
            print('App about to enter foreground')
        if event.type == 262: # SDL_APP_DIDENTERFOREGROUND
            print('App entered foreground')
    

    不是很优雅,但它也适用于使用 buildozer 构建的 Pygame 2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多