第12回.連載でJavaゲーム作っちゃいます弐
ほるえ:
ますたぁー。何とか、動きましたっ。どう?すごくないですか?
Masa:
どれどれ、なんだキャラ一ヶしか出てないじゃないか。これじゃゲームとは呼べね〜。
ほるえ:
そ、それは、この後いろいろ実装していくので、あくまでテストベンチ仕様ということで・・・
ほらっ、いろいろ付いていると、修正しづらいじゃないですか。
Masa:
なんか、誤魔化されてるようなきもするが・・
まっいいか。じゃ、クラス図とシーケンス図。あと、こいつのアップをしよう。
ほるえ:
やった〜。

今回の実装

方針:動作チェックをしていたプログラムが、全くクラス分けが去れていなかったので機能分けをして、動くところまで確認します。

クラスと働き
Sumulation
外部入力関係を担当。
1.画像ファイルの読込み。2.マウス等入力読込み。3.画面表示などなど。
MapBuilder マップデータを読み込み実際のMapクラスをインスタンス化するクラス。
マップ表示も担当
MapData マップデータと場所評価点を持つクラス。
場所評価点はコンピュータ側の移動に関するもののため今回は使用せず。
Map マップデータの一コマを担当するクラス。移動に必要なコストや評価ポイントを持つ。
また、マップ一コマの表示も担当。
Man Sumulationからのメニュー入力に従い、コマンド実行を担当。
また、MapBuilder等へのデータ受け渡しを実行
(masa:将来的には、コンピュータ側も使うので、名前は変更?)
FrigherItem 戦士のクラス。とはいえ、ほとんどCharacterクラスを継承しているので、ほとんど空。他の職業を実装し始めたら再検討。
Character 表示キャラクタのスーパークラス候補。一応必要そうなものは入っているが戦闘系はまだ未実装なので、その時再検討を要す。
CharacterData キャラクタの初期データを持っている。当然今回は、ほぼ空
AreaSerch 深さ方向の探索を行うクラス。これまでごちゃごちゃしてた部分をクラスで分離してかなりすっきり。基本的な機能に変更なし。
PathSerch もらった深さ方向探索結果(配列)から実際の進む順路を決定するクラス。
これまで、public の配列にアクセスしてごちゃごちゃしてた部分をちゅっきり。
実装クラス図

Masa:
む〜。前回のシーケンス図とかなり様子が変わってるな〜
ほるえ:
(ぎくっ)ほ、ほらっ。イタレーションですよ。イタレーション。
Masa: イタレーションはいいけど、ちゃんとシーケンス図にも反映すること。どうせ、関係あるとこしかいじってないだろ。
ほるえ:

はー。さすがはマスター。ほるえの性格、判ってきてますね。

「今回の成果」

画面構成上、別画面にしています。
右のボタンでページが立ち上がります。


アプリケーション動作
中央に表示しているのが操作するキャラクタです。(ちょっと、上下に揺らしてみました。)
マウスカーソルをキャラクタに合わせて、右クリックするとポップアップメニューが出ます。"Serch"を選択してください。
移動可能な場所がグレーになりますので、行きたい場所をクリックして選択します。
"Move"を選択することで、キャラが移動します。

ソースコードのダウンロードは、こちらから

ほるえ:
や〜。一時はどうなるかと思いましたが、やればできるですね〜。我ながら、良くやったです。
Masa:
でも、これはテストベンチだからな〜。何かテストしねーといかんな。(ぱらぱらっと)よし、これやろっか。
ほるえ:
な、何ですかっ、これ。見たこと無い線がいっぱいあるぅ。
Masa:
これぞ、Java使いの必須科目「デザインパターン」だっ。これさえ、クリアすればどんなソフトもお茶の子さいさい。これで君も「ウィザード」だっ。(言い過ぎだな。(^-^;)
って、お〜い。聞いてるか?
ほるえ: (うぃざ〜ど。うぃざ〜ど・・)はっ。やります。やらせてください。マスター
Masa: うっうんやってくれたまえ。(結構、ミーハーなやつ))
悪の錬金術師の口車に、まんまと乗せられたほるえちゃん。今後の道が、いばらであることは言うまでもない(合掌)

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