第5回  スクラッチパッドへのデータ保存とダウンロードファイルの処理90Xi専用ゲームiアプリ開発講座(2/4 ページ)

» 2004年11月15日 22時22分 公開
[澤橋辰典・武上将樹,ITmedia]

スクラッチパッドの設計

 今回は、カードゲーム用データ保存にスクラッチパッドを利用するのだが、ゲームに限らず、スクラッチパッド(表内はSPと表記)を使用するアプリを作る場合、どの位置にどのようなデータを置くかを示すメモリマップを作成するとわかりやすい。今回は以下のようにメモリマップを作成した。

状態 SP位置
初回起動のフラグ 0
デッキのカード 1〜 3
所持カードフラグ 4〜75
イメージのサイズ 76〜
イメージのデータ 200〜
今回のアプリのメモリマップ

 このメモリマップは、1回きりではなく繰り返し何度も使用するものなので、スクラッチパッドのロケーションと位置を、以下のように定数として設定する。

static final String SP_POS = "scratchpad:///0;pos=";
static final int SP_FIRST_FLG  = 0;
static final int SP_DECK_CARD  = 1;
static final int SP_CARD_FLG   = 4;
static final int SP_IMAGE_SIZE = 76;
static final int SP_IMAGE_DATA = 200;

ネットワークを使った画像のダウンロード

 カードゲームでは、使用できるカードが多ければ多いほど、ゲームのバリエーションが広がる。たくさんのカードを生成していくため、ネットワークを利用して効率的に画像をダウンロードしていくことも重要だ。ネットワークからデータを読み込むには以下のように記述する。

HttpConnection hc = 
  (HttpConnection)Connector.open(
  IApp.getSourceURL() + "res/card.gif",
  Connector.READ,
  true);
hc.setRequestMethod(HttpConnection.GET);
hc.connect();
int imgLength = (int)hc.getLength();
InputStream is = hc.openInputStream();
byte[] byteData = new byte[imgLength];
is.read(byteData);
is.close();
hc.close();

 Connector.open()の第一引数には読み込みたいURLを指定する。IApplication.getSourceURL()は、サーバに配置されているそのアプリのパスをString型で返してくれる。例えば、アプリの配置URLが以下の通りだとする。

http://example.com/card-appli/card.jar

 プログラム中でgetSourceURL()を使うと、"http://example.com/card-appli/"が返ってくる。アプリ配置場所にresフォルダを作成し、gifファイルを置いておけばいい。第二引数はHttpConnection.setRequestMethod()でHttpConnection.getLength()で取得したデータのサイズを得られる。HttpConnectionから得たInputStreamから、read(byte[] b)を実行することで、バイト配列のbに、gifファイルのデータが格納される。

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2024年05月07日 更新
  1. 楽天ペイと楽天ポイントのキャンペーンまとめ【5月4日最新版】 1万ポイント還元や最大20%還元などの施策が充実 (2024年05月04日)
  2. 改札で困らないように モバイルSuicaで「オートチャージ」を設定する方法 (2024年05月06日)
  3. 4万円台からの「Nothing Phone (2a)」は誰向けか Phone (2)との比較で分かったこと (2024年05月05日)
  4. 皆さんは「スマホにガラスコーティング」してますか? 私はしていません (2024年05月04日)
  5. ガストやバーミヤンの「テーブル決済サービス」、楽天ペイも利用可能に レジへ行かずに卓上会計 (2024年05月05日)
  6. 楽天モバイルがeSIMの不正乗っ取りについて注意喚起――安心安全に使えるeSIM環境を業界を挙げて取り組むべき (2024年05月05日)
  7. ダイソーで110円の「ガラスコーティング液」は本当に使える? 試してみた結果 (2024年04月29日)
  8. Evernoteからの乗り換えでオススメのメモアプリ5選 無料で使うならどれがいい? (2024年02月13日)
  9. GWのUターンラッシュでスマホを活用する技 道路の渋滞情報と、電車の混雑状況を確認しやすいアプリはどれ? (2024年05月05日)
  10. 最新デジアナ文具でスケジュールも手書きしてアップ!? サラサラ書き心地の良いゲルインキタイプも登場──NeoLAB「Neo smartpen A1」 (2024年05月04日)
最新トピックスPR

過去記事カレンダー

2024年