第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年09月19日 更新
  1. IIJに聞く“eSIMサポート”の裏側 「つながらない」「消した」なぜ起こる? 現場が打つ次の一手 (2026年09月18日)
  2. 出そろった「iPhone 18 Pro」の価格を4キャリアで比較 ソフトバンクが衝撃の安さ、楽天モバイルが異例の施策 (2026年09月13日)
  3. 「iPhone 18 Pro」は何が進化した? 「iPhone 17/17 Pro」とスペックを比較 全て20万円超えの価格が悩ましい (2026年09月10日)
  4. iPhone Duoを「開いたままでも片手で持てる」ケース登場 ESRが新製品発表、日本で急成長の理由とは (2026年09月17日)
  5. 「Suicaのペンギン」卒業騒動にまつわる背景と誤解 JR東日本に聞いた (2025年11月14日)
  6. Androidでおサイフケータイを使いたくない理由 初期化で消えないデータと売却時の落とし穴 (2026年09月19日)
  7. 15日配信「iOS 27」の新機能まとめ Siri AIの恩恵を受けられる機種は? 画像編集やSafariにも注目 (2026年09月14日)
  8. ドコモのiPhone、iOS 27でRCSに対応 3キャリアのiPhoneとAndroidで利用可能に (2026年09月17日)
  9. JR東日本「分かりにくい」新幹線券売機を改善へ なぜ、スマホではなく「駅での最短1分購入」を実現? (2026年07月04日)
  10. 「世界初」ソフトバンクらが成層圏HAPSのリアルタイム追尾とレーザー測距に成功 光無線通信へ大きな一歩 (2026年09月17日)
最新トピックスPR

過去記事カレンダー