いろいろなことを考えるならば、2.simpleWindow の方法を使えばいいと思うんですが。
わたしなりにいろいろ思うところがあったので 突然脱線していきます!
まずコードを提示いたします。
import pygame from pygame.locals import * _running = True def on_event(event): global _running if event.type == pygame.QUIT: _running = False size = weight,height = 640,400 pygame.init() _display_surf = pygame.display.set_mode(size, pygame.HWSURFACE | pygame.DOUBLEBUF) while(_running): for event in pygame.event.get(): on_event(event) pygame.quit()
これで 2.simpleWindow と同じ動きをします。
気持ちの悪い __main__とか__init__とかもありません。
classも使っていません。
これぞRaspberry Pi流、Python!(うそですごめんなさい)
wiringPiからpythonを使い始めたので、最初こういう感じで覚えました。
ガチなpythonユーザーさんには怒られるかもしれませんけどこういうのもアリなんじゃないかなってわたしは思います。
一番大切なのは動くことですから。
このコードで一ヶ所分かり辛いところがあるのでそこだけ補足します。
def on_event(event): global _running if event.type == pygame.QUIT: _running = False
このファンクションの、 global _running のとこです。
これはスコープの中ではすべての変数がローカル変数として扱われるために、グローバル参照するためには明示的にglobal定義しないといけませんよ ってなことでついてます。
このコードの場合、このglobal _runningは無くても動くんですが、ウィンドウを閉じようとしても閉じなくなります。
ほかは特に難しいところないですよね?
普通に上からファンクションを定義後、つらつらと実行されて行きます。