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

» 2004年11月15日 22時22分 公開
[澤橋辰典・武上将樹,ITmedia]
前のページへ 1|2|3|4       

is = Connector.openInputStream(SP_POS + SP_FIRST_FLG);
flg_first = is.read();
is.close();

 ここに何もデータがなければ、0の値を拾って初めての起動と判断し、サーバから画像データを取得する。取得したらスクラッチパッドにサイズとデータを保存し、スクラッチパッド先頭バイトに1を書き込む。このとき書き込む値は0以外であれば何でもよい。

int image_pos = 0;
//初回起動時
if (flg_first == 0) {
  byte[] byteData;
  for(int i=0;i<RES_COUNT;i++) {
    hc = (HttpConnection)Connector.open(IApp.getSourceURL() + "res/card" + i + ".gif",
                      Connector.READ, true);
    hc.setRequestMethod(HttpConnection.GET);
    hc.connect();
    image_size[i] = (int)hc.getLength();
    is = hc.openInputStream();
    byteData = new byte[image_size[i]];
    is.read(byteData);
    is.close();
    hc.close();
  dos = Connector.openDataOutputStream(SP_POS + (SP_IMAGE_SIZE+i*4));
    dos.writeInt(image_size[i]);
    dos.close();
    os = Connector.openOutputStream(SP_POS + (SP_IMAGE_DATA+image_pos));
    os.write(byteData);
    os.close();
    image_pos += image_size[i];
  }
  //データのダウンロードと保存に成功したら起動フラグを立てる
  os = Connector.openOutputStream(SP_POS + SP_FIRST_FLG);
  os.write(1);
  os.close();
} else {
  //2回目以降起動時
  …
}

 今回の場合、72種類のカード絵柄をまとめて一つのファイルにしたため、描画をする時に32×32ピクセルの絵柄を、1枚ずつ切り出さなくてはならない。この作業を簡易化するため、以下のようにカード番号とX、Y座標を指定することで、カードの枠と該当する箇所の絵柄を描画するメソッドを作成した。

private void drawImageCard(Graphics g, int card, int dx, int dy) {
  if (card < 0 || 71 < card) {
    return;
  }
  g.drawImage(img[0], dx, dy);
  g.drawImage(img[2], dx+7, dy+30, (card%12)*32, (card/12)*32, 32, 32);
}

 次回より、いよいよ通信対戦を行うためのサーバサイドのプログラミングについて解説していく。ネットワークを利用できるアプリが作れるようになれば、今までとは一味違ったこともできるようになるはずだ。

前のページへ 1|2|3|4       

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

過去記事カレンダー