BREW プログラミング入門(5)
|
|
三種類のキーイベントのイベント パラメータはどれも同じ意味をもちます。wParamにはキーのキーコードが渡され、dwParamには修飾キーフラグが渡されます。
キーコードとは、キーを表す定数です。「BREW APIリファレンス」の左側の目次の[キーコード]を選択すると、キーコードの一覧が表示されます。以下にいくつか抜き出してみました。
キーコード | 説明 |
AVK_SELECT | セレクトキー |
AVK_CLR | クリアキー |
AVK_UP | 上キー |
AVK_DOWN | 下キー |
AVK_LEFT | 左キー |
AVK_RIGHT | 右キー |
AVK_SOFT1 | ソフトキー1 |
AVK_SOFT2 | ソフトキー2 |
携帯電話のキー
修飾キーフラグは、修飾キーを表すビット定数です。修飾キーとはパソコンのキーボードの[Shift]とか[Ctrl]にあたるもののようです。「BREW APIリファレンス」の[キーコード]-[修飾キーのビット]に記述がありますが、通常の携帯電話では使われることはないでしょう。
イベント処理のサンプルアプリ
今回解説した七つのイベントをすべて使用したサンプルアプリを示します。名づけてニコチャンアプリです(クリックで別ウィンドウにソースコード表示)。
このアプリを起動しますと、ニコチャンの黄色い顔が表示されます。セレクトキーを押下状態にしますと、ニコチャンの顔が怒った顔になります。セレクトキーを離しますと、元のニコニコ顔になります
セレクトキーが押下状態であるかどうかを、アプレット構造体(NicoApplet)に格納しています。描画ルーチンでは、その状態に応じて描画を行っています。
このアプリでは、アプレット構造体にIGraphicsオブジェクトを保持しています。IGraphicsオブジェクトは、描画ルーチンの中で取得・解放してもよいのですが、そのぶんだけ描画速度が落ちることになります。そこで、EVT_APP_STARTイベント処理の中でIGraphicsを取得して、それを実行中ずっと保持しています。そして、EVT_APP_STOPイベント処理の段階でオブジェクトを解放しています。このようなテクニックは、BREWで高速なゲームを作るときには、 必ず使うことになるでしょう。
それから、今回のアプリでは、EVT_APP_RESUMEイベントを処理して、レジューム時に再描画を行っています。BREWアプリがサスペンド状態になると、別の画面が表示されますので、レジューム直後には元の画面表示を行う必要があります。
また、EVT_APP_SUSPENDイベントでは、セレクトキー押下状態を解除しています。もし、セレクトキー押下状態でサスペンドされたら、どうなるでしょうか。実際にセレクトキーが押下状態ではないにも関わらず、内部的に押下状態フラグがたっているため、レジュームされたときに、怒った顔が表示されてしまいます。
このようなサスペンド・レジューム時の細かな処理は、実際のアプリ開発では必ず必要になってくることでしょう。
※今回の記事のソースコードは、ソフィア・クレイドル のサイトからダウンロードできます。
著者紹介 倉谷智尋:ソフィア・クレイドル研究開発部チーフサイエンティスト。ソフィア・クレイドルは、2002年2月京都市にて、無限の可能性を秘めたソフトウェア職人たちが楽しく集い、自ずと自己実現が達成される場になることを目指して創業。在籍スタッフの平均年齢は20代前半と若いが、その大半がプログラミング歴10年以上とそのプロフェッショナリティは極めて濃い集団である。 これまでにBREW用アプリケーションフレームワーク、ケータイJavaプログラム圧縮技術、ケータイJavaブラウザ技術、ケータイメッセンジャー技術などを総合的に研究開発し、「高品質な共通プラットフォーム」の実現を目指してきた。 ご感想、ご質問はこちら(zdnet-contact@s-cradle.com)まで。 |
[倉谷智尋, ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.
前のページ | 2/2 | 最初のページ
最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!
最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!