第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年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. 携帯番号に「060」が採用されるワケ 「電話番号とは何か」を歴史とともに振り返る (2024年10月09日)
    6. JR東日本「分かりにくい」新幹線券売機を改善へ なぜ、スマホではなく「駅での最短1分購入」を実現? (2026年07月04日)
    7. ショップとAIで差別化を図る「ドコモの銀行」――住信SBIネット銀行ユーザーからは戸惑いも (2026年07月19日)
    8. ミドルハイレンジモデルにも水冷搭載 nubiaから「Neo 5 GT Special Edition」登場 (2026年07月19日)
    9. “特典終了”が続く「d払い」「dポイント」のお得さはどう変わるのか これからは「dカード」の利用が得策? (2026年07月17日)
    10. 最大13日間バッテリー持続、丸型デザインの「CMF Watch 3 Pro」がAmazonで販売中 1万3800円 (2026年07月18日)
    最新トピックスPR

    過去記事カレンダー