これまでのところ、 pgs4a 0.9.4を使用して、シンプルな PyGame アプリを Android で実行することに成功しています。私の次の実験は、PGUで PyGame GUI ウィジェットを使用できるかどうかを確認することでした。残念ながら、これはうまくいかないようです。誰かがこれで成功しましたか?
エラー情報をキャッチしてログに記録する方法をまだ少し手探りしているので、問題を示す最小限の例を以下に示します。このアプリは、黒い画面にエラー メッセージが表示されるだけで、エラー メッセージがある場合は白いテキストで表示されます。
PGU モジュールをインポートするだけで問題が発生することに注意してください。つまり、「from pgu import gui」をコメントアウトすると、問題なく動作します。厄介な部分は、例外がきれいにキャッチされていないように見えることです-アプリは起動直後に終了するだけです-そのため、PGUインポートのどこに問題があるのか わかりません。
import pygame
msg = 'OK'
try:
from pgu import gui # pass works without error
except Exception as e:
msg = str(e)
try:
import android
except ImportError:
android = None
FPS = 30
WIDTH, HEIGHT = 480, 800
def main():
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
if android:
android.init()
android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)
font = pygame.font.Font(None, 24)
surf = font.render(msg, True, (255, 255, 255))
pygame.time.set_timer(pygame.USEREVENT, 1000 / FPS)
while True:
ev = pygame.event.wait()
if android:
if android.check_pause():
android.wait_for_resume()
if ev.type == pygame.USEREVENT:
screen.fill((0, 0, 0, 255))
screen.blit(surf, (10, 400))
pygame.display.flip()
elif ev.type == pygame.QUIT or (ev.type == pygame.KEYDOWN and
ev.key == pygame.K_ESCAPE):
break
pygame.quit()
if __name__ == "__main__":
main()