第11回.連載でJavaゲーム作っちゃいます弐
Masa: 「UML入門、ていうか、Java勉強し直し」で勉強しているUMLを使ってここまでのコードを一度整理してみます。
ほるえ: まったく・・・コードがぐちゃぐちゃで手を入れるのがしんどいから、作りなおすって何でいえないですかっ。(びしっ)
Masa: いてっ・・まあ正直言うとそういう部分もあるけど、できるだけ完成されたコードを皆さんにお届けしたいって部分もあるんだよ。
ほるえ: ほー。じゃあネットゲームやめて、まじめに仕事するですか?
Masa: いや、それは・・・・

「キャラクタを動かす」で考える。

ユーザーがマウスでキャラクタを指定し、移動先を決定するまでのシーケンス記述
1.ユーザーがマウスで動かすキャラクタを指定します。
2.gameMasterは、指定されたマウスのx,y座標をmanに問い合わせ、キャラクタNoをgameMasterに渡します。
3.ユーザーは、マウス右クリックでポップアップメニューを表示させる
4.ユーザーは、メニューからMoveを選択する。
5.gameMasterは、moveに移動準備をさせます。
6.moveは、移動可能範囲の検索を行い、終了したら移動準備が完了したことをgameMasterに伝えます。
7.ユーザーはキャンセル待ち画面でキャンセルしないを選択します。
8.ユーザーは、マウスで移動先をクリックします。
9.gameMasterは、移動先に敵キャラがいないことを確認します。
10.moveは、移動経路検索を行います。
11.ユーザーは、移動の最終確認を行います。
12.gameMasterは、moveに移動実行を指示します。
13.moveは、manに移動実行させ終了したら移動実行終了を返します。
シーケンス記述に従ったシーケンス図

ほるえ: これだけ、細かく書いてあるとさすがにほるえでも判りますが・・。これを全部やっていくのは大変じゃないですか?
Masa: 大変といえば、大変だけど・・でも今回みたいに途中でやり直すことを考えるとはじめから、これぐらいやっておいたほうがいいな。それに、今回は「UML入門」だし。
ほるえ: えらい。ちゃんと学習してますね。
Masa: むー

「相手キャラクタを攻撃する」で考える。

ユーザーがマウスでキャラクタを指定し、攻撃が終了するまでのシーケンス記述
1.ユーザーがマウスで動かすキャラクタを指定します。
2.gameMasterは、指定されたマウスのx,y座標をmanに問い合わせ、キャラクタNoをgameMasterに渡します。
3.ユーザーは、マウス右クリックでポップアップメニューを表示させる
4.ユーザーは、メニューからattackを選択する。
5.gameMasterは、attackに攻撃準備をさせます。
6.attackは、manから攻撃可能範囲、computerから攻撃可能範囲に存在するコンピュータ側のキャラクタの有無をもらい、攻撃可能キャラがいれば表示し、攻撃準備を終了します。
7.ユーザーはキャンセル待ち画面でキャンセルしないを選択します。
8.ユーザーは、マウスで攻撃対象キャラクタをクリックします。
9.gameMasterは、attackに攻撃開始を指示します。
10.attackは、computerから相手キャラクタデータ、manから自分キャラクタデータを読み込み、paintに攻撃画面をさせ、攻撃処理を行います。
11.attackは、攻撃処理による処理結果をcomputerとmanに送り結果を反映させgameMasterに攻撃終了を返します。

シーケンス記述に従ったシーケンス図


「相手キャラクタを回復する」で考える。

ユーザーがマウスでキャラクタを指定し、回復が終了するまでのシーケンス記述
1.ユーザーがマウスで動かすキャラクタを指定します。
2.gameMasterは、指定されたマウスのx,y座標をmanに問い合わせ、キャラクタNoをgameMasterに渡します。
3.ユーザーは、マウス右クリックでポップアップメニューを表示させる
4.ユーザーは、メニューからhealを選択する。
5.gameMasterは、healに回復準備をさせます。
6.healは、manから回復可能範囲と回復可能範囲に存在する自分キャラクタの有無をもらい、自分キャラがいれば表示し、回復準備を終了します。
7.ユーザーはキャンセル待ち画面でキャンセルしないを選択します。
8.ユーザーは、マウスで攻撃対象キャラクタをクリックします。
9.gameMasterは、healに回復開始を指示します。
10.healは、manから自分キャラクタデータを読み込み、paintに回復画面をさせ、回復処理を行います。
11.healは、回復処理による処理結果をmanに送り結果を反映させgameMasterに回復終了を返します。

シーケンス記述に従ったシーケンス図

ほるえ: とりあえず、操作する方はこんな感じっと。
Masa: あ、いい感じでまとまってるじゃないか。
ほるえ: まあ、大体の感じでやってるんですがって、何で私がやってるんだろ?
Masa: まあ、おまえもそろそろレベルアップってことで・・・
ほるえ: むー、またへんてこなダンジョンへ放り込まれるよりはましですが・・
Masa: そか、その手も合ったなって(ちゅどーん)
まだまだ、UMLが続きますがしばらくお付き合いください。

Copyright (C) 錬金術師Masa
新規:2005年11月26日