好調パワフル

なんかしらんが絶好調。何時間でもぶっ通しでコーディングできそう。興奮状態のため、夜中3時まで寝れなかったのはご愛嬌。

なんでだろう。夕食の本格四川麻婆豆腐がいけなかったのかしら。あとアイスコーヒーがぶ飲みしたのも。
以前から一度やってみたかった「作家先生気取りプレイ」のため、夕食をバーミヤンでとりつつ、ゲームの仕様書など書いてみた。ひとりで4人席を占領して長時間居座るプレイ。2,3時間はいけると思っていたが、1時間しかもたなかった。おなかはいっぱいだし、周りに家族連れは増えてきたし、なんかいづらくなったw まあ、楽しかったのでよし。ただ、家に帰ってから無性にさみしくなった。なんだこれ。黒澤みたいな生活。だれか嫁に来てけろ。


帰ってからは、ひたすらコーディング。ADVゲームのシナリオ解析クラスを作ってみた。やってみたら、シーン管理、分岐、画像配置などの処理はいちおうできた。なんかあっさりできた。最近のお仕事のせいで、さらにスキルアップしてしまったのだろうか。
クラス構成としては、以下のような感じ。

  • CSceneManager (ゲームシーン管理クラス CSneceBaseをスタックで保持)
  • CSneceBase (ゲームシーン基底クラス)
  • CNovelManager (ノベル管理クラス CNovelObjectを配列で保持)
  • CNovelObject (ノベルシーンクラス CNovelEventを配列で保持)
  • CNovelEvent (ノベルイベントクラス テキストと整数のパラメタを保持)

ノベルクラスは、テキストに書かれたシナリオファイルをManagerが読み込む。シーンごとにObjectクラスにいれる。表示テキストや表示画像の変更、シーンのイベントなどは、それぞれをEventクラスにいれる。

ゲームのシーン(スクリーン?)は、表示する順番に、CSceneManagerのスタックにを重ねていく。重ねる際に、そのシーンで必要なテクスチャとかを読み込む。スタックから取り除く際にテクスチャなどを破棄する。たとえば「ロゴ表示シーン→タイトルシーン→ゲームシーン→オプションシーン」みたいに、シーンをスタックに積み上げる。ただ、この構成だと下層シーンのテクスチャを保持しっぱなしでメモリ効率が悪い。改良の余地あり。楽しいね。