ステート・マシン・コードの実装

この記事の目的は、ゲームのインターフェイスのステートマシンですので、我々はより簡単にコードを見ることができるように、そうstate_demo.pyは、特殊なファイルを書きました。

ゲームのスタートアップコードは
pygameのを初期化し、画面サイズがc.SCREEN_SIZE(800、600)で設定を開始します。すべての定数は、別個のconstants.pyに格納されています。

インポートのOS
のPGとしてインポートpygameの
Cのような輸入定数

pg.init()
pg.event.set_allowed([pg.KEYDOWN、pg.KEYUP、pg.QUIT])
pg.display.set_caption(c.ORIGINAL_CAPTION)
SCREEN = pg.display.set_mode(c.SCREEN_SIZE)
SCREEN_RECT = SCREEN .get_rect()
1
2
3
4
5
6
7
8
9
load_all_gfx関数、接尾辞指定したディレクトリに沿ったすべての画像を見つけロードするpg.image.load関数を使用し、に設定さグラフィックで保存します。
背後にあるグラフィックスの様々なを取得するときに見つかったすべての画像リソース/グラフィックディレクトリに保存GFXは、それが使用されます。

:DEF(受け入れる=( 'PNG'、 '.JPG'、 '.BMP'、 '.GIF')、ディレクトリ、カラーキー=(255,0,255))をload_all_gfx
グラフィック= {}
ディレクトリ(os.listdirにPICのため):
名前、内線= os.path.splitext(PIC)
の場合ext.lower()で受け入れ:
IMG = pg.image.load(os.path.join(ディレクトリ、PIC))
img.get_alpha()の場合:
IMG = img.convert_alpha()
他:
IMG = img.convert()
img.set_colorkey(カラーキー)
グラフィック[名]のimg =
リターン・グラフィックスを

= Load_all_gfx GFX(os.path.join( "リソース"、 "グラフィックス"))
。1
2
3
4
5
6
7
8
9
10
11
12である
13である
14
15
すべての状態state_dictを保存を作成し、次のデモ関数エントリでありますセットには、関数呼び出しsetup_states初期状態はMAIN_MENUを提供します。

__nameもし__ == '__ MAIN__':
ゲーム=コントロール()
state_dict = {c.MAIN_MENU:メニュー()、
c.LOAD_SCREEN:にloadscreen(http://www.amjmh.com/v/BIBRGZ_558768/)、
c.LEVEL:レベル()、
c.GAME_OVER:ゲームオーバー()、
c.TIME_OUT:タイムアウト()}
game.setup_states(state_dict、c.MAIN_MENU)
game.main()

おすすめ

転載: www.cnblogs.com/ly570/p/11535803.html