こんばんは。





今日は忙しく、全くJavaに触っていないので、昨日の補足を…





結局、使用メモリ量がどんどん増えていくのは、単にガーベッジコレクションのタイミングの問題でした。


つまり、一時メモリを確保しては破棄していたので、どんどんメモリが膨れ上がっていくように見えましたが、空きメモリが尽きた瞬間に140MB以上にまで増えたので、全く問題ないことが分かりました。





一時メモリを確保・破棄することを繰り返してよいのか?という問題については、おそらく「全く問題が無い」と言えるでしょう。相当昔の資料ですが ttp://www.ibm.com/developerworks/jp/java/library/j-jtp01274/index.html に詳細があります(少なくとも、6年前に比べて状況が悪化していることはないでしょう)。





という訳でした。





あと、別にオライリーの回し者ではありませんが『リファクタリング・ウェットウェア』という本は素晴らしいです。


厚さの割りに\2940と若干割高に感じますが、それだけの価値ある内容で、是非本棚に収めておきたい逸品でした。


こんばんは。


私は一応最終的にAUのオープンアプリで動かすことを目標に開発しておりますので、そろそろ実機テストを行ってみることにしました。





その過程で色々と失敗したのですが…とりあえず、注意点を二つ。


1.MIDlet-1: はJADファイルに必須。


 まぁ仕様上必須なのです。MIDlet-nに対応してないのにどうしてかは分かりませんが…


2.pulsarの一時JAR&JADでは不足


 これにやられました。workspaceの一時ファイルを持ってきても、ダウンロードは出来てもインストールが上手くいきません。


 結局ファイルを丸ごとコピーしてKToolBarでビルドしてみたらすんなりいきました。








というわけで無事実機で動いたのですが、問題点が二つ。


1.途中で強制終了してしまいました。


 タイミングからして、恐らくパレットカラーを変更した画像を描画したタイミングな気がします。


 これに関してはまぁ単純に避ければいいのですが





2.使用メモリ量がどんどん増えていく


 という恐ろしい事態が発生していました。


 どう考えてもコーディングが悪いので見直してみましょう…





ただ、使用可能メモリが157MBもあった(!エミュの割り当て量の約3倍)という嬉しい結果もあったので、希望も大きいですね!





結局、pulsarで開発して、テストはWTKで行うのが一番良さそうです。


いざ遊べるようになるまで、頑張っていきましょう!





//しかし、有料でもいいのでレンタルサーバーを用意しないと…;




マップエディタが完成しました。

先日の日記でも書きましたが、JavaSEでは描画周りは中々に面倒ですね…Imageクラスの仕様が違うのと、Spriteクラスが無いだけでこんなにも違うとは!

こんなときのために、画像処理関連のクラスでもまとめて作っておいた方がいいかもしれません。多分世の中には画像処理やフィルタリング用の有用なクラスが既に作られているかもしれませんが…;

『Code Reading』なる良著にて、過去に書かれているコードを再び書く必要はないといった趣旨の文章がありましたが、将来ユニークなコーディングをする時のために、練習を積んでいくことも欠かせないでしょうね。



話がだいぶ脱線しましたが、本題に入りましょう。J2MEのときSpriteクラスで行われていた画像処理は、SEではBufferedImageクラスとAffineTransformクラスで行うようです。

要は、アフィン変換で回転+平行移動で上手く取り出すわけですが…画像が回転してるのか座標軸が回転してるのか、引数の単位は度なのかラジアンなのか等ですごく混乱しました。正直もう二度とやりたくないです。

まぁ念願かなって、マップエディタ自体は完成しました。

http://twitpic.com/13md1y こんな感じです。



自作ゲームのスクリプトからマップチップを読み込んでくれる自慢の逸品に仕上がりました。

もう少し使い勝手がよくなって汎用性を高くしたら公開しますかねー