- 締切済み
【ゲーム作成】戦略シミュレーションでのキャラクタクラス
前回も質問しましたが、またここで。場違いな質問ならば言ってください。 前回の質問から、マップとキャラクター(の画像)を表示することが出来るようになったのですが、実際にキャラクターに役割を持たせる際、どういう風な処理なのかがわかりません。 マップ上を左クリックし、そこにキャラクターを配置するのですが、何の情報をどういう風に渡し、どう処理するのかがわかりません。 ちなみに、言語などで困っているわけではないので、どの言語で説明してもらってもかまいません。 お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- benelli
- ベストアンサー率51% (78/152)
キャラの配置は簡単でしょう。キャラの情報に現在位置の変数を用意してそこにデータを格納し、マップを描写するだけですから。 まだマップに配置していないキャラは現在位置をnullにでもしておけば処理できます。 漠然とした質問なので簡単にしか書けませんが、キャラの役割については、簡単なレベルのちょいオブジェクト風に考えたならば…… [大戦略方式](主にターン制向け) ○マップのオブジェクト-メイン処理。 ○キャラオブジェクト-位置情報、強さなど情報のみ。 1.マップの状態遷移図を作る。 FEなら、未選択・キャラ情報表示・キャラ選択・命令の各状態を覚えとく変数を用意。 2.マップにてキャラ描写関数を作る。 キャラ描写関数はキャラ情報を読み込んで、画像をマップに配置する。マップ新規読み込み時、再描写に使う。 3.マップにて情報表示関数、移動関数、行動関数を作る。 情報表示関数は未選択状態でセル右クリック時に、そのセル座標と何かのキャラのセル位置が一緒だったら画面全体にキャラ情報表示。キャラ情報表示状態へ。何かクリックしたら未選択状態に戻る。 移動関数は未選択状態でセル左クリック時に、そのセル座標と何かのキャラのセル位置が一緒だったら移動可能範囲を表示しキャラ選択状態へ。次に移動可能範囲をクリックしたらキャラ移動し行動関数実行。移動可能範囲外は無視。右クリックは未選択状態に戻る。 行動関数はそのキャラが移動先で処理できる行動(攻撃、アイテム使用など)一覧を作成し表示。コマンドを選んだら行動に合わせてHP増減や経験値取得などを計算。 4、行動関数などいくつかの関数の最後に全体勝利条件チェック関数を設け、勝ち負け判断。 - - - - - - - [提督の決断IV方式](主にリアルタイム向け) ○マップのオブジェクト-常に画面描写。 ○キャラオブジェクト-位置情報、強さなどの情報だけでなく、各キャラ行動状態を持っている 1.キャラクタに移動関数、攻撃関数、追尾関数、その他自動実行の命令フラグ(攻撃命令、退避命令など)を持たせる。 2.セルを左クリックし、キャラを選択後、他のキャラがいないセルをクリックしたらキャラは決められた速度でそこに移動する。現在位置が刻々と変化する。 3.セルを左クリックし、キャラを選択後、敵キャラがいるセルをクリックしたらキャラはその敵を攻撃できる位置に移動し、攻撃する。敵のHPを減らしていく。 4.セルを左クリックし、キャラを選択後、自軍キャラまたは同盟軍がいるセルをクリックしたらキャラはそのキャラに移動し、ずっと追いかける。 - - - - - - - いきなりプログラムしようとせずに、操作方法やゲーム仕様を先に考えればおのずと答えが見えてくるはずです。もし分らないようなら、プログラムのことは忘れていろいろなゲームをプレイし、どれをどのように操作すればいいのか、どんなアルゴリズムなのか(敵の行動パターンなど)を調べなおして見てください。頭硬いと何もできないですから。 ……