Unityと吉里吉里でSLGとかRPGを作るブログ

今回はコマンドとイベントの処理を作成する。
この手のゲームで一番分りやすいコマンドは「進軍」になると思う。
敵の陣地をクリックして、「進軍」コマンドを入れれば、部隊選択画面とかになって・・って感じになるんだけど、これ1つとっても結構めんどくさい処理が発生する。
とりあえず、その当たりの設計からやっていく。


///コマンド&イベントの整理
コマンドとイベントを処理する場合、どんな情報が必要かまとめてみる。
①どのエリアか
  日本地図なら、千葉でしか発生しないイベントとかコマンドとかに必須。

②自国の土地と隣接したエリアか
  凄い遠方のエリアまで「進軍」したらおかしいので、エリア間の連結情報は必須の情報。
  処理的には下の図の様に処理する。

  ■エリアの隣接判定概要図
  隣接
  エリア③にエリア②、④、⑤が繋がっている情報だけ与えておけば、繋がっているエ
  リアを全て調べて1つでも自国があれば、そのエリアは自国と繋がっている事が分る。
  自国と隣接した事をフラグで管理するよりも、スマートに管理できるはず。(オンオフの
  処理が必要ない)
  これは、エリアデータテーブルに追加すればOK。

③支配国が自国かそれ以外か
  先の「進軍」なんかは、自国内では発生しない。あと、自国のみ発生するイベントやコ
  マンドにも必須の情報。

④支配国とは交戦状態か
  交戦前の場合、「宣戦布告」とかのコマンドが必要なゲームも多い。あと、同盟国の場
  合のみ出るコマンドとか。

⑤支配国はどこか
  戦略ゲームでは、一度占領した土地を奪い返される事は良くある事。例えば、A国の土
  地を奪ったけど、B国にその土地を取られた場合、A国のイベントがそこで発生するのは
  不味い。
  この手のバグはSLG好きな人は1回くらい見た事あるんじゃないだろうか、滅んだはず
  の国のイベントとか発生するやつ。

⑥そのコマンド&イベントの条件はそろっているか
  特定キャラが居る場合のみ発生するコマンドとかイベントとかに必須。条件はフラグで判
  定して、フラグが立ってる場合のみコマンドやイベントが使える様にすればよい。


///イベント管理の設計
こうやってみるとコマンドもイベントの一部と考えられる。そしてイベントは、使用条件と発生条件に分けて考えると良さそう。

■使用条件
 ①エリアの情報(隣接とか自国とか交戦中)
 ②発生場所(マップ、ターン頭(エンドとか)
 ③使用可能フラグが立ってるか

①は「進軍」コマンドの様にマップ上で使用するイベントの場合に必要な情報。
②は発生場所、上のマップ上や、ターンの頭に自動的に発生するなど。
③は発生条件を満たしているかを表す。

■発生条件
 ①条件(特定キャラがいるとか何ターン目とか資金いくらとか)
 ②使用可能フラグ

発生条件で、イベントの発生を管理し、使用条件で発生場所を管理するイメージ。図にすると下の様な感じ。
■イベント管理図
イベント相関
ターン頭とか特定の条件で自動的に発生するイベントも全く一緒。トリガーが自動かユーザーによるマウスクリックかの違いでしかない。

例えば、3ターン後に東京エリアが自国エリアの時に東京タワーを見に行くイベントが発生する様な場合、「3ターン後」が発生条件、「東京エリア」で「自国エリアの場合」が使用条件となる。

3ターン後になった時点で、使用可能フラグがONになり、イベントは発生する条件を満たすが、東京エリアが自国エリアで無い場合は、イベントボタンが使用出来ないって形になる。




次回はこれを元にオブジェクトの設計を行う予定。



スポンサーサイト
2009.01.19 / Top↑
Secret

TrackBackURL
→http://nekodamasi.blog79.fc2.com/tb.php/13-8667d9ac