これはPython上で動作するPygameを使ったゲームエンジンです。
このゲームエンジンは次の順に動作をします。
ゲーム開始
シーン等読み込み
シーンのjsonファイルからシーンをすべて読み込みます。この時、それぞれのシーン名はそのファイル名となります(拡張子は省く)。
シーンの他にもゲームのコンフィグ情報(後述)を読み取ります。
OnLoad()
Start()
Update()
終了
エンジンは「シーン」を読み込みます。ゲームで動作するキャラクターや飾りなど全ての「ゲームオブジェクト」はこのシーンの中で動作します。
シーンを追加する時最初に右図の「Scenes」にファイルを追加する必要があります。この「Scenes」ファイルは絶対にこの位置でなければなりません。動かした場合、ゲームは正常に動作しません。
Scenesファイルの中には .json 形式のファイルを追加してください。これがゲームで動作するシーンとなります。
.json形式のファイルは左図のように記述してください。
オブジェクトを追加する
画像の "MainCamera" の部分です。これは任意の名前です。他のゲームオブジェクトと重複してはなりません
シーンには必ずカメラの機能をもつオブジェクトを一つ追加しなければなりません。ない場合、シーンは正常に動作しません。
タグ、レイヤー、ID、を設定する
これも任意ですが、項目として必ず追加しなければなりません。
IDは他のゲームオブジェクトと重複してはなりません。
コンポーネントを記述
Componentsはゲームオブジェクトの動作を表します。
クラス名を記述してください。標準にないクラス名に関しては、登録する必要があります。(後述)
ルート階層にある、"SceneLoader.py"内にある object_hock() 関数内に新たに、
elif cls == "クラス名":
return 新しいクラスインスタンス
と記述し、追加してください。
(*注意) クラスが書かれたPythonファイルは、"SceneLoader.py"冒頭でインポートして下さい。(絶対に!!)
ゲームオブジェクトはゲームに置ける物体の基本形です。これなしにゲームはありません。
ゲームオブジェクトには複数のコンポーネントを追加することができます。これらの情報は一つのゲームオブジェクトで管理されます。情報を各コンポーネント内で共有するため、ゲームオブジェクトは一つの機能を提供しています。それは、
GetComponent(type_)
関数です。これは、各コンポーネント内で、self.gameobject.GetComponent(type_)として使用可能です。
この関数は引数(type_)で受けた型を取得します。例えば、PlayerというゲームオブジェクトはBehaivorという挙動を表すコンポーネントと、Statusという体力などのステータスを表すコンポーネントを持っていたとしましょう。Behaivor内で、Statusで扱う情報が欲しい時、この関数を使うことでStatusコンポーネントの情報を取得できます。
コンフィグはゲームのウィンドウネーム、ウィンドウサイズ、FPSなどの基本情報を記述します。
コンフィグの設定はConfigフォルダにある「settings.ini」に記述します。以下が必要な設定項目です。
[WINDOW]
これがウィンドウの情報であることを示します。
WIDTH
ウィンドウの幅
HEIGHT
ウィンドウの高さ
CAPTION
ウィンドウネーム
FPS
目標フレームレート(スペックにより可能なフレームレート数は制限されます)
SCENE
初回起動時に読み込むシーン名(拡張子は記述しない)