New Articles

Recent Comments

  1. Storekeeper 設計編(1)
    1. 09/11 : by ?尚男装
    2. 08/04 : by チャンルー
    3. 07/11 : by 男性用水着 ビキニ
    4. 09/12 : by ヒーハー!!!!
    5. 09/05 : by ついつい・・・
  2. Seesaaで自作HTMLカスタムしてみたの
    1. 08/02 : by 吸引力の変わらないただひとつの…
    2. 08/13 : by テレビ電話 エッチな女の子
    3. 10/29 : by Kelvin Perry
    4. 10/26 : by Emma Erickson
    5. 10/24 : by Vince Shepard
  3. 作るモノ・課題 募集中!
    1. 02/11 : by ポロリン
    2. 02/01 : by PC自作男
    3. 01/27 : by タソタソメソ
    4. 01/27 : by ちょろ毛
    5. 01/19 : by まろゆき
  4. トラックバックのテスト
    1. 10/03 : by english amatuer porn
  5. Storekeeper 設計編(3)
    1. 10/03 : by mature women amatuer

Recent TrackBacks

  1. 12/02 : Seesaaで自作HTMLカスタムしてみたのまげフ
  2. 11/29 : Seesaaで自作HTMLカスタムしてみたのふりす
  3. 11/22 : Seesaaで自作HTMLカスタムしてみたの犬コロ
  4. 11/08 : Seesaaで自作HTMLカスタムしてみたの花びら
  5. 10/25 : Seesaaで自作HTMLカスタムしてみたの暴走

Log

  1. May 2005 (1)
  2. Apr 2005 (10)

RSS

29 Apr 2005 :: Storekeeper GUI版デキタヨ!

SwingやらJava2Dやら紆余曲折を経まして、出来ますたGUI版。
一応説明しますと、StorekeeperとはJavaで作った倉○番です。

Storekeeper20050429.zip

コマンドラインに "cui" と指定すると、CUI版も遊べちゃうという。
何も付けないとGUI版です。ちゃんとウィンドウが出ます。
本当にどのプラットフォームでも動くのかはわかりませんが、動くはずです。
一応ModelとViewを切り分けられたって事かな?

Swingは、LayoutManager やら Container やら、最初は複雑さばかりが目についたのですが、
蓋を開けてみれば、意外とすいすい書ける。
リスナーの使い方とか、イベントとの対応さえ覚えてしまえば、なんとかなるっぽいです。
ActionListenerとかMenuListenerとか、たくさんあるので覚えるのが大変ですけどネ。

ゲームの描画は、JPanel を継承して paintComponent() メソッドをオーバーライドしてます。
毎回毎回ゲームの状態を取得して、描画してたんじゃ遅くなりそうだったので、BufferedImage をオフスクリーンとして持っておいて、ゲームの状態が更新されたら、その都度オフスクリーンを更新。
paintComponent() で、オフスクリーンを画面にコピー、となかなか速くていいぞこれ。

そこで、気になるのがGUI版のメモリ使用量。
メモリ1GB超の時代ですが、やっぱりリソースは節約するべきです。

CUI版と比べるとメモリ消費はさぞかし… と思ってタスクマネージャを見たら、2倍以上だった。orz
…いやいや待てよ、と。
BOSUKEさんのβえんどるふぃんのネタ帳にあるタスクマネージャーメモリ使用量の怪の記事を思い出す。(無断リンクごめんなさい m(_ _)m)
つまり、本当のメモリ使用量を見たければ、仮想メモリサイズを見ろという訳なんですよ!
見ると、CUI版とGUI版の違いは 5MB ぐらいだった。GUI部分は5MB程度のメモリを使用するのか。意外と少ないのね。

どちらにせよ、たかが倉庫番に20MB以上ってメモリ使いすぎだよ orz

Posted at 03:17 / 0 Comments / 0 TrackBacks / Category : Product

26 Apr 2005 :: Storekeeper CUI : Memento パターン

くだけた文体に飽きてきたので、少し堅めの文体で書いていきたいと思います。

結城先生の本とにらめっこしつつ、Memento パターンで、Storekeeper(倉○番)の「一手戻る/進む」「一番最初に戻る」を実装してみました。

Storekeeper20050426.zip

Memento パターンを使う上で難しかったのは、Memento(記念品)の役に、どのように、また、どのぐらい、情報を出し入れするインターフェースを提供させるか、という点です。
同じパッケージ内だからと言って、あまりに情報を公開しすぎるのも、なんだか気持ちよくありません。依存性を高める結果にならないのでしょうかね。それとも、気にしすぎなんでしょうか。

今回のケース(Storekeeper)では、保存する必要があるのは、主人公の座標・歩数と、全ての箱の座標なので、Memento の中は、座標のArrayListなどを持たせています。
Memento を作成するタイミングは、「ゲーム開始時」「主人公が移動した時」なので、この辺りは、Game クラスに簡単に組み込めました。Observer パターンが効いているのかしらん。
でも、移動の度にオブジェクトが増えるとなると、気になるのはメモリ使用量。
といっても、Memento の中身が同じになるのは、ほとんどありえないので、Flyweight パターンも使えないし… 一時ファイルとかに退避させればいいのかな… この辺りのノウハウがよくわかりませんです。

例えば、ドローイング(絵を描く)ソフトを作る場合、UndoやRedoなどは、どう実装するんでしょうね。こういった場合、ポイントとなるのは、「何を保存するか」なのでしょうけど。
それでも、恐らく情報量が半端じゃ無いと思うので、やっぱり一時ファイルを作ってるのかな。ページファイルみたいなもの?

と、結局、気になりつつも放置してしまう出不精な私。特に重くならなければ、まあいいや。
なんだか、Javaを使ってるとメモリの使用量に疎くなってくるような… (^-^;

Posted at 01:22 / 0 Comments / 0 TrackBacks / Category : Product

25 Apr 2005 :: Javaで大体出来ましたStorekeeper CUI版

色々作ってたら遅くなってしまいました。
結局、まずコンソール版で作る事にしちゃったり、
クラス階層を分けてみたりと、色々弄ってみました。

ソース入りアーカイブ置いておきます。

Storekeeper 2005/04/25

※実行には JRE 5.0 が必要だと思われます。
 あと、「一手戻る/進む」機能については、未実装です。Memento パターンでやる予定。

うぅ… 眠くてヤヴァイので、肝心の中身については、次回…で…… zZ

Posted at 02:48 / 0 Comments / 0 TrackBacks / Category : Product

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。