見出し画像

6-1 データの構成

同人誌について

 この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。

 同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで288ページの本になります。ぜひ、こちらもご購入ください(2024-03-10:ver1.0.3 に更新)。


データの構成

 ここでは、ゲームのデータをあつかいます。「src/mymod/data/」配下に多くのデータを格納しています。

  • src/

    • mymod/

      • data/

        • __init__.py

        • action.py

        • app.py

        • audio.py

        • battle.py

        • enemy.py

        • game.py

        • growth.py

        • io.py

        • item.py

        • map.py

        • map_event.py

        • scene.py

 これらのモジュールは、大きく分けて3つに分かれます。

 1つ目は「保存するデータ」です。ゲーム中の状態をセーブする際に、含まれるデータです。このモジュールのデータは、JSON形式で入出力します。

 2つ目は、データの計算や保存に使う「補助的な関数群」です。オブジェクトのJSON化や、JSONからのオブジェクト生成は、これらのモジュールでおこないます。

 3つ目は「保存しないデータ」です。ゲームの定数や一時的な変数で、保存とは無関係なデータです。

 上に掲載した各ファイルを、この3つに分けて、簡単な説明を加えます。

  • 保存するデータ

    • game.py

      • 保存するデータのオブジェクト構造のルート。

      • 主人公のデータや、各種データ。

    • item.py

      • アイテムの定数。

      • アイテム クラス。

      • 所有アイテムのリストを表すクラス。

    • map.py

      • マップの定数。

      • マップ クラス。

      • ミニ マップの色。

    • map_event.py

      • マップ イベント クラス。

      • マップ イベントの設定と終了状況を保持。


  • 補助的な関数群

    • growth.py

      • 経験値の獲得とレベルによる能力値の計算。

    • io.py

      • データをJSON化して保存。JSONからのデータの復帰。


  • 保存しないデータ

    • action.py

      • 戦闘時の行動の定数

    • app.py

      • アプリケーションの設定。

      • 画面サイズや描画単位、

      • 画像ファイルなどのパス。

    • audio.py

      • 音声ファイルのパスと読み込み。

    • battle.py

      • バトルの進行定数。

      • バトル結果格納用のクラス。

    • enemy.py

      • 敵設定クラス。

      • 敵データ。

    • scene.py

      • シーンの定数。

 この章の進め方について書きます。まずは保存するデータを説明して、そのあとに補助的な関数群を説明します。最後に、保存しないデータを説明します。


同人誌について

 この連載は、同人誌『PythonとPygameで作る レトロ風RPG 全コード』を一部抜粋して編集したものです。

 同人誌本編には、ゲーム本体のソースコードや、各種のサンプルコード、Windowsで実行できるEXEファイルが付属しています。PDFで288ページの本になります。ぜひ、こちらもご購入ください(2024-03-10:ver1.0.3 に更新)。

 このnoteの記事と、Webページに一部抜粋版を掲載しています。

 技術系同人誌など まとめページ


この記事が気に入ったらサポートをしてみませんか?