※当サイトのリンクには広告が含まれています。

【Pyxelでゲーム開発】サンプルのソースコードからPyxelを知る7(07_snake.pyの解説)

Pyxel

Pyxelでは9個のサンプルが用意されています。

これらのサンプルのソースコードを理解することで、Pyxelでのゲーム開発をどのようにすれば良いのかがわかってきます。

本記事では、そのサンプルについて解説しています。

今回は、7個目のサンプルについて解説します。

スポンサーリンク

07_snake.pyはどんなサンプル?

今回のサンプルはスネークゲームです。

ゲームのルールは、壁や自分自身にぶつからないようにアイテムを取り続けるというものになります。

今回の07_snake.pyは、bgmもついてます。

スポンサーリンク

07_snake.pyのソースコード解説

では、ソースコードの解説をしていきます。

これまで通り、全てのソースコードはここには載せないので、各自エディタで確認してください。

またこれまでに解説した内容については、割愛することがあります。

07_snake.pyの構成

06_click_game.pyでは、Snakeという1つのクラスで構成されています。

Snakeクラスの外に、音楽と効果音を処理するdefine_sound_and_music関数が定義されています。

今回はSnakeクラスについて解説します。

__init__メソッド(コンストラクタ)

これまでと同じように初期設定とpyxel.run(self.update, self.draw)の実行になります。

少しカクカクした動きをさせるためにわざとfpsを20に設定しています。

resetメソッド

ゲームを初期化するメソッドになります。

コンストラクタ実行時、あるいはゲームオーバーになってリスタートする時に実行されます。

updateメソッド

ゲーム更新処理のメソッドです。

3つの分岐があり、ゲームオーバーになっていない限り実行されるのが、

  • update_direction
  • update_snake
  • check_death
  • check_apple

の4つのメソッドになります。

キーボードの「Q」を押した時には、ゲーム終了のquit関数が実行されます。

またキーボードの「R」を押した時には、リセットのresetメソッドが実行されます。

update_directionメソッド

ヘビ(プレーヤー)の進む方向を制御するメソッドになります。

どのキーボードが押されたかで、進む方向が変わるようになっていますが、バックはできないように処理しています。

例えば、下に向かっているヘビが上方向に方向転換はできません。

左か右にしか方向転換できないようになっています。

update_snakeメソッド

ヘビの移動を制御するメソッドです。

ヘビはアップル(アイテム)を取ると、どんどんと長くなっていくので、その処理が必要になります。

check_appleメソッド

ヘビがリンゴを取ったかどうかの処理になります。

リンゴを取った場合、スコアを1点追加し、ヘビの長さを1つ長くして、リンゴを新しく生成して、効果音を鳴らす処理になります。

generate_appleメソッド

リンゴを生成するメソッドになります。

check_deathメソッド

ゲームオーバーになるかどうかの判定をするメソッドです。

ヘビの位置情報から判定をしています。

death_eventメソッド

ゲームオーバーになった時のメソッドです。

drawメソッド

ゲームオーバーでない限り以下の処理が実行されます。

  • 画面のクリア
  • draw_snakeメソッド
  • draw_scoreメソッド
  • リンゴの描画

draw_snakeメソッド

ヘビの描画になります。

頭と体では違う色が設定されて、描画されています。

draw_scoreメソッド

画面上部にあるスコアを描画するメソッドです。

draw_deathメソッド

ゲームオーバー画面を描画するメソッドです。

スポンサーリンク

まとめ

今回はスネークゲームの07_snake.pyについて解説しました。

音楽と効果音に関する関数については説明を割愛しましたが、スネークゲームの方はロジックとしてわかりやすいものだと思います。

Pyxel
スポンサーリンク
toniemonをフォローする

コメント