第15回.連載でJavaゲーム作っちゃいます弐
ほるえ:
む〜、ますた〜。攻撃のの実装、こんな感じでいこうと思うんですけど、どうでしょう。
Masa:
どれ、見せてみ。
ふ〜ん。攻撃を`Character'経由で各キャラクタに持たせるわけね。
動作するとは思うけど、結構面倒そうだよ。この形にした理由は?
ほるえ:
ん〜と。ゲームとして考えたんですけど。ターン制ってどうも苦手で・・・
やっぱり、全体がリアルタイムで動いてたほうがいいかなって思うんですよ。
そうすると、各キャラクタが自分の動作を実装していたほうがやりやすくないですか?
Masa:
確かにその通りだけど、また難しくなっちゃうけど・・・、またリリースも伸びるし・・・・
ほるえ:
まあ、リリースも遅れまくっていますのであまり気にしなくてもいいと思いますよ。
Masa:
いや、少しは気にしろ・・・・

設計クラス図

方針:攻撃を行うためのクラス図とシーケンス図を考えます。攻撃の実装方法は'MapBuilder'と同じ感じで、Characterから各自実装しておきます。

新しいクラス、変更したクラス
AttackerInterFace 攻撃関係のインターフェースです。FighterItemやMageItemで攻撃を実装する場合は、これ経由で行います。
Character リアルタイム性を持たせるため、行動力を入れます。各動作には必要行動力があり、これを消費することで行動します。
変数名:actPoint
Frighter ファイタの攻撃を実装します。(直接攻撃)
Mage 魔法使いの攻撃を実装します。(間接攻撃)
実装クラス図

設計シーケンス図

コンピュータが相手側キャラクタを探して攻撃するまでのシーケンスです。オブジェクトで書いてたつもりが、いつのまにかクラスと混在してしまってわかりにくくなっちゃいました。
thinker FighterItem(又は、MageItem)内のメソッドで、computerTeam[]でインスタンス化されている。移動場所の評価をする。
frightMode FighterItem(又は、MageItem)内のメソッドで、computerTeam[]でインスタンス化されている。攻撃の処理を行う。


修正点)周りを確認するシーケンスを入れました(06.03.29)。実行ファイルを組み込みました。
画面構成上、別画面にしています。
右のボタンでページが立ち上がります。
ほるえ:
リアルタイムで行動する事にしたので、攻撃した後に反撃されることは無いことにします。
この方が、なんとなくそれっぽいでしょ。
Masa: この辺は、なんとなくその辺のゲームをぱくってるぽいけど、まいいか。
でも、こうすると自分キャラも、リアルタイムで動かんとゲームにならんけど・・・・
ほるえ:
あっ
Masa: (おいおい。でーじょうぶか)
なんか、まだまだ続きそうですが。気長に待ってやってください。

Copyright (C) 錬金術師Masa
更新:2006年03月29日