「第3弾」
2001年3月30日 |
iアプリ第3弾。今回はスクラッチパッドを使ってみようかな。で、読み書き自体はサンプルをそのままパクって、あっけなくできたんだけど、i-JADEでスクラッチパッドを有効にする方法がわかんないね。一応実機で動作確認して、ちゃんと動くことを確認したんだけど、i-JADEで実行しようとすると、「SPsizeを設定してないよ」的なエラーが出ちゃう。実行時の引数に、classじゃなくてjamを指定するのかなって思ったんだけど、実行自体はそれでも問題なさそうなんだけど、やっぱりSPsizeを見てくれないみたい。うーん。付属のドキュメントには何も書いてないしなぁ。メッセージ内容から見て、エミュレート自体はされていそうなんだけど。。。 |
(第3弾) |
[このおしゃべりにコメントする] |
2001年3月26日 |
iアプリ第2弾ってことで、ザカリテの逆襲を作ってみることにした。別に特におもしろいゲームというわけじゃないけど、こういうチープなBASICソフトを最新(?)のJavaで作ってみるのも、おもしろいよね。
まず問題になったのは、画面表示。昔のBASICのスクリーンエディタとか、DOSの画面とかみたく、文字を表示しようとすると前回表示の次に表示されて、下まで来るとスクロールする、っていう感じの画面を、どーしよーかって。なんかこういうのって、たいていの環境ではなにも考えなくてもこーなってることが多いから、いざないとなると考えちゃうね。で、初めはTextBoxを編集不可にして使おうかなと思ったんだけど、やっぱりあんまり具合が良くない。というわけでCanvasのサブクラスで自作。バッファにある範囲は上下スクロールできるようにして。このクラスは後々いろいろ使えそうだね。
本物は、最初に半角カタカナでずらっと説明文が出てくる。これも同じ様に表示したいよね。ma3さんのワンダーウィッチ版は確かソースを公開してたから、そこからテキストをもらっちゃおう。って思って落としてきたら、なんと漢字かなの普通の文章になってた。うーん、やっぱりここは完全移植をねらいたいね。別に長い文じゃないから自分で打ってもいいんだけど、シルフィードのディスクイメージをバイナリエディタで開いて、該当部分を切り出してきた。BASICだからねー。
このくらいの文章ならソース中に埋め込んじゃっても良いんだろうけど、Unicodeで記述するJavaのソースに半角カタカナっていうのはなんかいやだったし、リソースの読み出しってのも試してみたかったから、テキストファイルにしてその都度読み込むようにしてみた。でもちょっと苦労しちゃったよ。だって、資料でリソースの読み出しっていうと、イメージの読み出しばっかりなんだもの。イメージは専用メソッドがあるから、ラクチンなんだよね。ま、何とかできたし、半角カタカナの表示も特に問題ないみたい。良かった。
ここまでできちゃえば、ゲーム部分は簡単だよね。実際には、スレッドの止め方がわかんなくて、ちょっとごちゃごちゃしちゃったけど。
初めは音なしで完成にするつもりだったんだけど、いろいろ見てたら何となく音の出し方がわかってきたから、音を出してみることに。で、まず、iメロディとかっていう、演奏内容が記述されたファイルを用意する。これは着メロと同じMLDファイルだっていうから、簡単かと思ったんだけどね。でも、某サイトから着メロをダウンロードして試したんだけど、なぜかエラーで鳴ってくれない。当然プログラムが悪いんだろうと思ったんだけど、なにが悪いのかちっともわからない。実機に転送してみてもやっぱりならなかったし。
ふと思って、本に付いてたCD-ROMからサンプルプログラム用のMLDファイルを持ってきたら、…鳴った!きゃー。でもなんで?バージョンとかがあるのかなぁ。本にはMLDCreatorとかってので作ったって書いてあったから、それを落として、サンプルをMLDファイルにしたら、ちゃんとなってくれた。ヨシヨシ。これで作ればいいわけだ。
MMLで書かれた本物のリストを見ながら、音楽の移植。でも、いざ鳴らしてみたら、なぜか1曲だけエラーが出ちゃう。うーん、なぜだぁ〜。実機でもやっぱり鳴らないし。データを差し替えると鳴るから、データが悪いことは確かなんだけど。。。というわけで、鳴るデータを少しずつ変えていろいろ試したら、なんか、テンポの指定を120にするか、省略すると、iアプリではダメみたい。なぜ?よくわかんないけど、テンポの省略値が120だっていうから、120にするとデータ内にテンポの指定自体がなくなっちゃって、でもテンポ指定のないデータは鳴らないってことなのかなぁ。しょうがないからテンポを110にして、完成。
いろいろ細かい仕上げをしてたら、なぜか完成直前に開発環境上では音を出すとおかしくなっちゃうようになっちゃった。うーん、音楽関係はいじってないのに。でも、実機に持っていったらちゃんと動いたから、まいっか。さて、遊んでくれる人はいるかな? |
(第2弾 第3弾) |
[このおしゃべりにコメントする] |
|
|