3

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

我已经为 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?干杯,

缺口

4

1 回答 1

0

看起来你已经在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。

于 2021-09-02T10:47:19.767 回答