スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



装飾文字列の描画処理を実装

装飾文字列の描画処理を実装しました。
まだテストはしていません。
バグがたくさんでてきそう。

またアニメーションさせて描画する仕組みも未実装。
次回は仮描画テストのための構築処理の実装です。
スポンサーサイト



装飾文字列クラスの実装途中...

日曜に実装を終えたかったが,まだ描画処理の一部のみしか実装していない。
実装量が多いので,リアルタイムの描画に耐えうるかと,バグなく実装できるかということが心配。

えせUMLのシーケンス図を使いながら抜けがないようにクラスを作っているつもり。
今週までにはなんとか実装を完了したいな。

UML図は無料のastah communityを使用しました。
日本語だっていうのが便利だね。



package対応完了

クラスが多くなってきたのとアクセスレベルを細かく制御したかったので
packageを使用することにしました。

いまいち慣れていないので分け方がいまいち。
これから修正しながら対応していく予定。

昨日までビルドできなかった問題を対応しました。
パッケージフォルダに対してもコンパイルを通るようにビルドスクリプトを修正。

javac .*java com/fc2/*.java

のようにスペース区切りで各パッケージのフォルダを渡すことで対応できた。
パッケージ数が多い場合はjavacに設定ファイルを食わせる方法がよいかと思う。

とりあえずビルドが通って一安心。
次回は前回の引き続き装飾付文字列クラスの実装です。



OH NO!!

クラス数が多くなってきたのでpackageで管理しようとしたら...
コンパイルが通らなくなった。

うぐぐ...今の今まで試行錯誤したけどダメだった。
明日に持ち越し。



ブログの設定変更

きょうはあまりやる気がおきなかったのでブログの整理。
Twitterと連動する設定があった。

今日の実装

文字列クラスのコンテナ操作の実装。
設計を少々。

おわり。

次回はひきつづき文字列クラスの実装。
各クラスへ導入。
マージンの実装と導入。



文字列クラスの実装開始

フォントや色などの情報を合わせもつ文字列クラスを実装開始。
文字列を扱うコントロールに実装予定。

大掛かりな変更なので時間がかかりそう。

自分がつくっているコントロールにはパディング値という値を用意している。
描画オブジェクトの外側の余白部分。
これだとテキストを描画するときに枠とかぶるなと思って内側の余白が必要だと思っていた。
LWUITをみたら外側の余白をMargin, 内側をPaddingという扱いにしていた!!!!
ショック!!!
Marginない!!!
Marginほしい!!!

ここも時間があれば作り直しだろうな。
全コントロールに影響が及ぶので,ここも時間かかりそうぅ。

今日はあまり時間がなかったので,次回に持ち越し!!
また次回!!



レコードストアクラスの実装ほぼ完了

ゲームのセーブデータを保存する仕組みを実装した。
前回まではビットシフトなどして2byteデータを保存していたりしましたが,
DataOutputStreamを使えば,writeShortとかwriteByteなどで対応できると判明。
前回の苦労は無駄だったみたい(笑)

今日はレコードストアをクラス化して,自分のゲーム用にラッピングしました。
オプション画面で設定した音量を,次のゲーム起動時にも再現できるように変更しました。
この仕組みができたので,あとは各クラスでシリアライズ処理を実装すれば,セーブデータは問題なく動くのではと期待している。

フォントに関しての実験をしたが,自分がもっている816SHはBOLD設定が効かないようだ。
さらに影つきフォントの方が読みやすそう。
影つきは先に影の色で字をを描画してから
次に正式な色で字を描画するという手段であることがわかった。
このために文字列描画処理部分を実装しなおさないといけないかも。
結構時間を使用したところなので,再実装はちょいとヘコむ。

文字表示はよく使われるから実装しないとな。

次回は文字表示の研究と実装。
その次はシーンごとのミュージックの引継ぎ方などの考察と実装。
これが終わったあとはキー入力のFPS制御でしょうか...。

ゲームの話はまだまだでてきませんが,しばらくお待ちください。



ねっねむい

十分寝たつもりが眠いのはなぜ???
冬眠かな。

今日はスライドバーをリストコントロール上に描画するためのクラス実装。
だいたいは実装完了。
ちょっと使いにくい仕様になっているので改修する必要ありそうですが....。

今日のビックリ
MIDPのObjectクラスにはcloneメソッドがない!!
オブジェクトのディープコピーは自分で実装しろとな???
通常のJAVA使いの人にとっては,細かい点が仕様が異なるから扱いにくそう。

次はスライドバーの不具合修正とスライドバーにフォーカスが当たらない問題の変更。
それが終われば,ストアレコードにオプション設定の内容をシリアライズするってところかな。
シリアライズ処理に関して仕組みを実装していないので,時間がかかりそう...。

その後は,オプション画面のフォーカスがあたっているコントロールと
その説明を描画するテキストボックスの連動処理かな。



スライドバー実装開始

オプション画面でボリュームを設定するところにスライドバーを使用する予定。
スライドバーの実装を開始しました。
リストアイテム化してリストコントロール上に表示する予定。

オプション画面ではリストコントロールで選択しているアイテムと連動して,
テキストボックスに説明を表示させたい。

今日は寝たのに眠い。
コントロールの作成って思ったよりも大変だとわかった。
共通化するのが難しい。

C++のようなテンプレート関数があればいいと思う箇所たくさん。

スライドバーをバークラスから派生させる計画は迷い中。
ゲームまで遠いなぁ。



グラデーション

体力バーやプログレスバーなどでグラデーションを使用したいので,グラデーションクラスを実装。
簡単なグラデーション処理なのでディザってますが,まぁしょうがないでしょ。

スライドバークラス実装のため,仮画像を用意。
背景画像を使用してスライドバーを作成する予定。

LWUITのように描画処理はLookAndFeelに集約するほうがいいんじゃないかとわかった。
スクロールバーでいうと,表示位置とスクロールボックスの大きさをスクロールバーで計算して
あとはどうやって描画するかについてはLookAndFeelに任せるほうが,すっきりしそう。
いまから作り直すのももったいないので,今回は1クラスで1通りの描画処理にすることにする。

時間があればLWUITの実装を研究したいな。



メニューアイテムのクリッピング処理

メニューアイテムをワードラップできるようにしていました。
アイテムの高さの計算に失敗していたらしく,描画がうまくいかなかった。
ので修正。

そしたら,クリッピング処理がうまく動いていないことがわかった。
コントロールの基底クラスにどんなときもクリッピングする処理を実装していたけど,
クリッピングしなくていいコントロールもあったので,制御できるように修正。

つーことで,スライドバーの作成は次回ってことで。



メニューリストのデバッグ中...

タイトルに表示するメニューリストがだんだんできてきた。
このメニューリストはリストコントロールから派生してつくったものです。

リストコントロールはタイトル画面だけでなく,
アイテムの表示や
技術の表示
などに使用するため,丁寧に作らないと,あとあと痛い目にあいます。

次はアイテム描画の計算部分に修正をいれる予定。
その修正をすれば,リストコントロールはほぼ完成かな?

リストコントロールの次はインディケーター(スライダーバー)コントロールだな。
インディケーターオプション画面に必要なんで。

牛歩ですが着々と進んでいます。

問題はデバッグをしようとアプリゲットのサーバにあげるのに
審査がながくてデバッグがサクサクできないってことだ。
アプゲにはもっとがんばってほしいところが沢山。
できればSoftbank公式アプリストアができてほしいところ。



メニューリストのデバッグ中

今日もフレームワーク作り。
メニューリストのデバッグ作業をしています。
なんとかメニューらしくなってきました。
ただスクロールバーの描画処理が...。
またスクロールバーを出すか出さないかを自動で算出していましたが,
これやると計算量が増えるからやめようと思う。
(スクロールバーが必要になると,スクロールバー分の幅が必要になり,
そうなると全体の高さが変わってくる。となるとまたスクロールバー用に高さを算出...)

スクロールバーを描画するか?しないか?のプロパティを用意して
スクロールバーが必要ないときも常に描画するような仕組みにしたい。


なかなか思うように進まない。
平日は仕事の関係で1時間できるか,まったくできないか。
やりはじめても,昨日まで何してたか忘れているときも...。

作業するまでのテンションがあがらないのも,まとまった時間がないからだろうな。

このままだとAndroid携帯を買ってS!アプリの開発が停止してしまうかも...。
そうなる前には仕上げたいなぁ。




オプション画面のスケルトン作成

画面切り替えのテストのため、オプション画面の枠だけ生成。
メニューリストを選択したときに画面を切り替えるように実装。
オプション画面にはコマンド(ソフトキー)を設定して,
ソフトキーが押されたらタイトル画面に戻るように実装。

フレームワークは問題なく動いている模様。

次からはメニューリストの実装テスト。
デバッグ技術がないので,このあたり開拓しないと,コストかかりそうだな。


オプション画面にはインディケータが必要そう。
スクロールバーもBarという基底クラスにして,プログレスバー,スクロールバーとできれば共有したいところ。
さてどうなることやら。



アプリケーション終了

今日はアプリケーション終了を実装しました。
アプリケーション終了するにはMIDletのインスタンスが必要で,
MainのCanvasに対して,そのインスタンスを関連付けないといけないようだ。

すっかり忘れてました。

今日はメニューリストから終了を押すと,アプリケーションを終了するようになりましたwww
それだけ。


オプション画面とタイトル画面を先に作り,
  1. 画面切り替え
  2. 鳴動と音量
  3. レコードストアへ設定の保存
等を実装していこうと思う。

テストを含めて現実的なライン。
まだまだこれから!!



時間ない...神様、金くれww

時間ないですね...。
少しずつ実装していますが,ゲーム画面が表示されるまでいつになるやら。

今日まで音を再生する仕組みを実装しました。
画面切り替え部分もそれなりに実装できてきた。
ためしにタイトル画面を作ってみて,メニューリストを試してみたけど...。

アイテムが押されたときのイベント通知処理は動いていたけど,
描画系がぼろぼろだ。
ぼちぼちデバッグして気長にやります。


jarファイルが異常に大きくなったと思ったら,
SubVersionの管理フォルダが紛れこんでしまったようだ。
(除いてもすでにiko1のときのサイズを超えている...いったい画像とか増やしたらどんだけ大きくなるんだ)
ビルド用のスクリプトを修正してなんとか回避。

修正時にわかったことだが,
jarコマンドの-Cオプションは1つのファイルしか受け付けないようだ。

jar -C [フォルダ名] [ファイル名]

複数ファイルのときは

jar -C [フォルダ名] [ファイル名A] -C [フォルダ名] [ファイル名B]

っぽい。
連続して指定したがだめだった。

jar -C [フォルダ名] [ファイル名A] [ファイル名B]

おかげで引数が異常に長くなったよ。
もっと楽な方法がありそうだが...。



画面切り替え

メニューコントロールを作成していたが,それよりも画面切り替え部分を作った方がいいだろうと,
実装をいったんとめ,画面切り替えクラスを実装中。

メニューコントロール実装中に,アクセスレベルについて考えてみた。

リストとその要素にあたるリストアイテムがあるとする。
リストアイテムとリストを別クラスとして実装すると,リストのメンバにアクセスできない。
ということでリストアイテムにリストのメンバ変数をセットする関数を用意する。

これだと関係ない人もセット関数を呼べてしまう。

どうしたらいいかなぁと考えたて,
とりあえずリストアイテムクラスをリストクラスのインナークラスとして実装した。
これによりリストアイテムはリストクラスのメンバにアクセスし放題。

C++のfriendに似ている。

この実装方法であっているか不明ですが,
問題が発生しない限り,この実装でいこうと思います。


コードの大幅変更が多くなってきたので,今日からSubVersionでバージョン管理をすることにしました。
CVSより扱いやすい。



アクセス
あなたは
キーワード
カテゴリー
最近の記事
リンク
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

WEB検索
Google

RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。