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

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

  • 第8回 90xiアプリのこれから
  • 第7回 ネットワークiアプリのためのサーバサイド活用(2)
  • 第6回 ネットワークiアプリのためのサーバサイド活用(1)
  • 第5回  スクラッチパッドへのデータ保存とダウンロードファイルの処理
  • 第4回 カメラ機能を使ってカードを作ろう
  • 第3回 簡単なゲーム作成の流れを身に付ける
  • 第2回 カードゲームをつくってみよう
  • 第1回 90xiの時代に何を作るか
  •  前回はカメラオブジェクトを利用して撮影した写真をアプリに組み込み、その画像を解析して、オリジナルのカードを生成する方法について解説した。

     今回はゲーム作りに必須となる、携帯電話の記憶領域(スクラッチパッド)を利用してデータの読み書きをする処理と、通信によってネットワーク上から画像をダウンロードする処理について解説する。

    スクラッチパッドの使い方

     携帯電話には、データを保存しておくための領域が存在する。この保存領域は「スクラッチパッド」と呼ばれ、アプリケーション内で利用するためのデータをこの領域に保持することで、データの読み込みや書き込みが行える。例えば、ネットワーク上から画像や音楽をダウンロードして保存しておけば、次にそのデータを利用しようとした時に、通信費や通信にかかる時間を気にすることなくデータを使用できるのだ。

     スクラッチパッドを使用するには、ストリームを開く際のロケーションに以下の文字列を指定する。

    "scratchpad:///0;pos=0"

     最初の数値はスクラッチパッドの番号(通常は0)を指定して、次の数値でスクラッチパッドの先頭から何バイト目になるのかを指定する。バイト形式のデータを読み込むにはInputStream、書き込むにはOutputStreamを用いる。読み込みのストリームを作るには以下のように記述する。

    InputStream is = Connector.openInputStream("scratchpad:///0;pos=0");

     ここで作成したis(InputStream)に対して、read()を実行すると、スクラッチパッドの先頭から1バイトだけ読み込むことができる(戻り値は0〜255の範囲をとるint型の数値)。続けて使用すると次のバイトを読み込む。この際に、使わなくなったストリームはclose()で閉じておかなければならない。255を超えるint型の数値を読み書きする場合は、DataInputStream/DataOutputStreamを用いれば便利である。以下はスクラッチパッドの先頭200バイト目からintデータを読み込む例である。

    int x;
    try {
      DataInputStream dis 
        = Connector.openDataInputStream("scratchpad:///0;pos=200");
      x = dis.readInt();
      dis.close();
    } catch (Exception e) {}

     スクラッチパッドを使用する際に忘れてはならないのが、アプリの設定ファイル(JAMファイル/ADFファイル)の変更である。エミュレータ上部にある「ADF設定」と書かれたボタンを押すことで、JAMファイルを編集できる。ファイルの編集に慣れていれば、プロジェクトフォルダ配下のappフォルダに格納されているJAMファイルを直接編集することも可能だ。設定ファイルのSPSizeの項目に400kByteまでの整数値(〜409600)を指定することで、スクラッチパッドをそのサイズまで使用できるようになる。

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

    Copyright © ITmedia, Inc. All Rights Reserved.

    アクセストップ10

    2026年06月01日 更新
    1. Switch 2の「箱の中にHDMIケーブルが入っていなかった」との問い合わせ、任天堂に寄せられる (2026年05月29日)
    2. 「Rakuten Linkで着信拒否できない件」を楽天モバイルはどう考えているのか 置き去りにされた基本機能の行方 (2026年05月29日)
    3. スマホでどこでもTV番組を視聴できる「バッファロー nasne HDDレコーダー NS-N100」がセールで3万3120円に (2026年05月29日)
    4. ソフトバンクが「今回もやる」とGalaxy S26を月額1円で販売――販売方法を早急に見直さないと撤退を迫られるメーカーも (2026年03月08日)
    5. 楽天モバイル販売ランキング:「MNPで一括1円」のエントリー4機種が3〜6位に並ぶ【2026年4月】 (2026年05月31日)
    6. LINEで「最終学歴」や「子供の有無」が筒抜け? 広告設定で物議も「トークや個人情報は参照していない」 (2026年05月30日)
    7. NTTドコモが5G SAを無料キャンペーンから「無料提供」に改訂――Opensignalで評価を上げることはできるのか (2026年05月31日)
    8. ダイソーで770円の「超速USB充電器」が外出先で意外と便利 USB PD+QuickCharge 3.0ポート搭載で古めの急速充電デバイスもOK (2026年05月30日)
    9. Xiaomiが異例の早さでハイエンドスマホを投入する理由 今秋に「ワクワクする」機種投入も? (2026年05月30日)
    10. 70万円の衝撃、Huaweiが放つ「ダイヤ入り」スマートウォッチ Apple猛追の裏にあるものは? (2026年05月31日)
    最新トピックスPR

    過去記事カレンダー