【 PCゲーム制作入門 No.12 】

制御系の解説

サンプルプログラムに戻ります。

ここからがゲームのメインループです。
メインループは、ゲームを終了しない限り、無限に繰り返される処理です。

    # ゲームループ
    while (1):
        # キーイベント処理(キャラクタ画像の移動)
        pressed_key = pygame.key.get_pressed();
        if pressed_key[K_LEFT]:
            x -= 8;
            SE_Play(1);
        if pressed_key[K_RIGHT]:
            x += 8;
            SE_Play(1);
        if pressed_key[K_UP]:
            y -= 8;
            SE_Play(1);
        if pressed_key[K_DOWN]:
            y += 8;
            SE_Play(1);

前半は、pygameの関数を使ってキーボードの上下左右を検出し、それに対応する処理を行っています。

pressed_key = pygame.key.get_pressed(); でキーボードの状態を検出。

次の
if pressed_key[K_LEFT]:
  x -= 8;
  SE_Play(1);
は、K_LEFT、つまり左キーが押されたかどうかを判定し、押されていたら、xを-8と、効果音の1番を再生しています。

以降も同じく、K_RIGHTで右キー、K_UPで上キー、K_DOWNで下キーを検出し、x,yの座標を 8 ずつ動かしています。

その後、自キャラが画面の外へ行き過ぎないよう、座標を調整しています。

        # キャラの座標が画面の範囲外にある場合、範囲内に入れる
        if x < 0:
            x = 0;
        if x > GMX:
            x = GMX;
        if y < 0:
            y = 0;
        if y > GMY:
            y = GMY;

但し、座標x,yはキャラ絵の左上になるので(絵の中心ではありません)、ちゃんと画面内に自キャラを入れておくには、
値を調整する必要があります。
どう調整すればいいか、試しにサンプルを書き換えてみてください。

ここまでが、メインループ内の制御系(キー操作や数値操作)です。
次回は、メインループ内の描画系を解説します。

次のページへ



[ StudioGIW TOPページ ]