レッスンの目標

PythonとPygameで作った二人協力ゲーム「Dualfo」を遊んでみましょう。

このゲームでは、一つのUFOを二人のドライバーが同時に操縦して、洞窟の壁にぶつからないように飛び続けます。一人だけでは操縦できないので、二人でコミュニケーションをとりながら協力することが大切です。

ゲームの準備

Pygameのインストール

まだPygameをインストールしていない場合は、コマンドラインから以下を実行してください。

pip install pygame

ゲームファイルのダウンロード

以下のGitHubリポジトリからゲームファイルを取得します。

リソース リンク
GitHubリポジトリ https://github.com/hypotize/dualfo

コマンドラインから以下を実行してダウンロードします。

git clone https://github.com/hypotize/dualfo.git
cd dualfo

ゲームの起動

コマンドラインから以下を実行するとゲームが起動します。

python3 ufo_cave.py

ゲーム画面

ゲームを起動するとスタート画面が表示されます。スペースキーを押すとゲームが始まります。

画面には以下の要素が表示されます。

  • UFO(円盤型の宇宙船)— 二人で操縦する自機
  • 洞窟の壁(緑色の岩)— ぶつかるとゲームオーバー
  • ダイヤモンド(青く光る菱形)— 取るとしばらく無敵になる
  • スコア(左上)— 生き残った秒数
  • シールド残り時間(左下)— ダイヤモンドを取ったときに表示される

操作方法

このゲームにはドライバー1ドライバー2の二つの役割があります。

役割 キー 動き
ドライバー1 Q キー UFOをに動かす
ドライバー1 A キー UFOをに動かす
ドライバー2 キー UFOをに動かす
ドライバー2 キー UFOをに動かす
どちらでも スペース キー ゲームの開始・再スタート

ドライバー1は上下だけ、ドライバー2は左右だけを担当します。

どちらかだけでは思い通りに動かせないので、二人で声をかけ合いながら協力してください。

遊び方のポイント

洞窟を飛び抜けよう

洞窟の壁は左から右へと自動でスクロールしてきます。UFOは壁にぶつかると即ゲームオーバーです(ライフは1つだけ)。

壁は斜めに動いたり、ガタガタと不規則な形をしているので、二人でしっかり声をかけ合って進みましょう。

スコアを稼ごう

スコアは1秒ごとに1点ずつ増えていきます。長く生き残れば生き残るほど高得点になります。

時間が経つにつれて、洞窟の通路がだんだん狭くなっていくので注意してください。

ダイヤモンドを取ろう

洞窟の中に、青く輝くダイヤモンドが時々現れます(約10秒に1個)。ダイヤモンドは壁の近くに置かれているので、上手に操縦して取りに行きましょう。

ダイヤモンドを取ると7秒間無敵になります。このあいだはUFOが光る青いシールドに包まれ、壁にぶつかっても大丈夫です。シールドが残っている時間は画面の左下に表示されます。

ゲームスタート直後は無敵

ゲームが始まってから最初の3秒間は自動的に無敵になっています。UFOが点滅しているあいだは安全なので、まず二人で操作に慣れてから本番に備えましょう。

協力のコツ

  • 声に出してコミュニケーションをとることが大切です。「上!」「右!」と言い合いながら操縦しましょう。
  • ドライバー1は壁の上下の隙間に注意し、ドライバー2は壁の近くに近寄りすぎないように意識しましょう。
  • ダイヤモンドを見つけたら「ダイヤ!右に!」などと声をかけて、二人で協力して取りに行きましょう。
  • 洞窟は斜めに曲がっています。壁がどちらに向かって動いているか予測しながら動くと長く生き残れます。

もっと楽しくしよう

ゲームに慣れてきたら、以下のことを考えてみましょう。

  • 友達と交代でプレイして、誰が最高スコアを出せるか競ってみよう
  • なぜ二人の協力が必要なのか、プログラムのコードを読んで確認してみよう
  • 自分でコードを改造して、洞窟のスピードダイヤモンドの出る頻度を変えてみよう
  • 新しいパワーアップアイテムや、キャラクターのデザインを追加してみよう