第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

2026年07月21日 更新
  1. ダイソーで330円の「人感・明暗センサーLEDバーライト(Type-C)」が意外と便利 1人暮らしの帰宅時や非常灯に便利  (2026年07月18日)
  2. なぜ「060」携帯番号は18カ月あっても延期になったのか? それでも「慌てる必要はない」現状 (2026年07月20日)
  3. 専用充電器はもう不要? 中韓スマホから国内勢まで巻き込む「USB PPS」急速充電の新常識 (2026年07月14日)
  4. 「Pixel 11」は何が変わる? メモリ減少で100ドル前後の値上げも? 出そろったうわさを整理する (2026年07月19日)
  5. JR東日本「分かりにくい」新幹線券売機を改善へ なぜ、スマホではなく「駅での最短1分購入」を実現? (2026年07月04日)
  6. ショップとAIで差別化を図る「ドコモの銀行」――住信SBIネット銀行ユーザーからは戸惑いも (2026年07月19日)
  7. 携帯番号に「060」が採用されるワケ 「電話番号とは何か」を歴史とともに振り返る (2024年10月09日)
  8. iPhoneやApple Watch一斉値上げ 17無印は14万2800円に、17eは10万円超え 加速する中古スマホ特需 (2026年07月18日)
  9. “特典終了”が続く「d払い」「dポイント」のお得さはどう変わるのか これからは「dカード」の利用が得策? (2026年07月17日)
  10. ミドルハイレンジモデルにも水冷搭載 nubiaから「Neo 5 GT Special Edition」登場 (2026年07月19日)
最新トピックスPR

過去記事カレンダー