スポンサーサイト

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



キー入力制御

S!アプリのときはMIDP2.0で追加されたGameCanvasを用いてキーの入力値を取得していた。
(MIDP1.0からプログラムしている人は自前でキー入力制御を実装していたようですね)

GameCanvasのgetKeyStates()メソッドを実行すれば,そのときのキーの状態を取得することができます。
内部で何をしているかというと,キーのupイベントとdownイベントを取得して,
キーの押下状態を保持するというものです。

この状態を取得した後に「連続入力の無視」という処理を実装していました。
今回も役割分担として,キーの状態を把握するクラスと,
入力値からキーの伝搬をフィルタリングするクラスという構成でいこうと思います。

ボタンのイベント発生順に関してはコチラのサイトに書かれているものを参考にしました。

http://wiki.livedoor.jp/moonlight_aska/d/%A5%DC%A5%BF%A5%F3%A4%AC%B2%A1%A4%B5%A4%EC%A4%EB%A4%C8....

ボタンのup, downはOnTouchListenerインターフェースによって実装できる。

http://developer.android.com/intl/ja/reference/android/view/View.OnTouchListener.html

MotionEventにはACTION_DOWNとACTION_POINTER_DOWNがあるが,
前者は最初にタッチされたイベントで後者は2つめ以降に押されたときのイベントだそうです。
(2つ目以降って言ってるけど,本を読んだ限りではマルチタッチは2つまでだそうだ)

ビューを押した状態でボタンが押せないのは謎。
ここは改善項目なので後日修正する。

・EnumSetでビットシフト的なenumを実装できる
Androidではenumを使うとパフォーマンスが悪くなるみたいです。
http://labs.techfirm.co.jp/android/cho/1293

クラスオブジェクトや関数を使うなら通常のビット演算の方が楽そう。

とりあえず仮想パッドからキーの入力状態を管理・取得することができるようになりました。
取得の状態はログをみた内容なので,画面に出して確認したい。

ということで次はオフスクリーンイメージ部分とグラフィック周りでしょうか。
簡単に言ってみたけど一番重い> <
関連記事
スポンサーサイト



コメントの投稿

非公開コメント

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

この人とブロともになる

WEB検索
Google

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