第4回 カメラ機能を使ってカードを作ろう:90Xi専用ゲームiアプリ開発講座(2/2 ページ)
900i専用のトレーディングカードゲームを開発するため、今回は900iのカメラ機能と画像処理機能を利用してゲームの主役であるカードを生成する方法を紹介する。
画像を解析をしてカードにパラメーターを付加する
画像の解析といっても、撮影した画像をすべて処理していたのでは時間がかかる。そこで、写真の中の1ピクセルを取得して、カードに個別の情報を持たせるためのパラメータを決定する。
まずはrepaintで描画を行い、Graphics.getRGBPixel(int x, int y)で現在描画されている画面の任意の点のピクセルのRGB値を取得する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
取得したRGB値は、0xRRGGBBの形式の整数値である。以下は、RとGとBを乗算して、その値から1〜9の値を導いている例である。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ほかにも、特定の色に反応する処理をしたい場合は、RGBのそれぞれの比を算出し、Bが強ければ青、RとGが強いが、Bが弱ければ黄色のように判定する方法が考えられる。
解析が済んでパラメータが決定したら、カメラで撮影した画像をゲームで使用するカードの大きさに切り抜いて保存する。以下は、Graphics.getPixelsで画面中央から50×30のピクセルを取得し、そのピクセル配列を元に、カード用の画像を作成する方法である。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
エミュレータや実機での動作確認をしよう
今回のソースはここからダウンロードできる。実際にコンパイルして実行し、カード生成モードへ遷移してみる。
- タイトルからソフトキー2(右)→デッキメニューから遷移
エミュレータで写真撮影(Camera.takePicture())を行うと、ファイル参照のウィンドウが表示されるので、176×144の画像を選択する。この画像を撮影された画像として動作確認を行える。
今回のプロジェクトフォルダにcamフォルダを追加した。中には、green.jpgとpink.jpgが入っている。エミュレータでそれぞれの画像を選択すると、カードのパラメータは6と2になる。ソースを実際の端末にダウンロードして動作させると、写真撮影時にカメラが起動され、撮影した画像によりパラメータが変化する。
次回はスクラッチパッドを使って記憶領域にデータを保管する
次回は、スクラッチパッド(ローカルの保存領域)を利用して、撮影データを保存、読込する処理と、画像をネットワークからダウンロードして保存、読込する処理を解説する。
|
関連記事
- 連載バックナンバー
- 第1回 90xiの時代に何を作るか
ドコモのFOMA 900iシリーズが普及し始め、パケット定額制サービス「パケ・ホーダイ」も人気を博している。こうした新たな時代のiアプリ開発とはどんなものなのだろうか。 - 第2回 カードゲームをつくってみよう
900i専用の、トレーディングカードゲームを開発してみる。まずはカーソルを動かしてカードを選択するところまで作ってみよう。 - 第3回 簡単なゲーム作成の流れを身に付ける
900i専用のトレーディングカードゲームを開発するため、今回はシーン別処理とランダムな値の取得について学んでいく - ドコモ四国、第3回iアプリコンテストを開催
ドコモ四国は今年で3回目となるiアプリコンテストを開催する。iアプリ部門、Flash部門、四国学生部門の3部門を設け、大賞には賞金30万円などが授与される。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.