【C++】ノベルゲームのスクリプト - その1
現在ノベルゲームのエンジンを作成中。
それにあたっていちいちソースコード側でメッセージや画像を切り替えるのは汎用性に欠けるからゲーム本体に実装するための外部スクリプトを作れたらいいなぁ、と思い実装方法を考えてみた。
まず、スクリプトに必要なデータ。
・発言者
・表示メッセージ
・背景絵(のパス)
・キャラ絵(のパス)
・BGM(のパス)
・効果音(のパス)
まぁ、こんなところかな。
実際には効果音不要の場合があったり、キャラ絵にも表示位置などがあったりするからもう少し複雑になるけど、今回は構想を纏めるだけなので割愛しよう。
ふむ。
必要なデータはどのシーンでも共通だ。
となるとスクリプト構造体を定義し、その配列で管理するのがベター。
要素数は原稿の長さに依存するのでnewを利用して動的にメモリを確保する。
struct Script{
char* Name;
char* Message;
int BGIHandle;
int PersonHandle;
int BGMHandle;
};
Script *p = new Script;
こんな感じにして受け手を確保してあげればいいんじゃないかなぁ......
これでメインフレームでの描画ループのカウンタを、ロードする構造体の要素数に当てていけば運用しやすくなる(ハズ)
ただ、このままだと各要素の代入は手打ちになるから外部で作成した意義があるとは言えそうにない。
次回はこの構造体に外部ファイルからデータを読み込む方法を考えようと思う。
2014/11/13 Thu.