フィールドシリアライザ
メテオスもどきの惑星パラメータの文字列による出力が出来上がって、今は文字列を入力として惑星パラメータを復元する部分を作っているところです。
ほかにも、描画システムを見直したりしてました。
まあ、結局もとのやりかた以外は全然うまくいかなかったため戻したんですけどね。
メテオスもどきの惑星パラメータの文字列による出力が出来上がって、今は文字列を入力として惑星パラメータを復元する部分を作っているところです。
ほかにも、描画システムを見直したりしてました。
まあ、結局もとのやりかた以外は全然うまくいかなかったため戻したんですけどね。
タイトルにあるコンテンツの最初の一言の「お絵描き掲示板と同じ要領でMIDIを作って投稿できる掲示板システムを作っているのだ。」を「MIDIを作れるJavaアプレットを作っているのだ。」に変更しました。
ちょっとね。「Java」という単語を入れたかったんですよ。
どうにもGoogleで「ShortMessage MIDI -Java」というキーワードで検索して来てくれた人がいるようなんですね。
「Java」を除くというオプションにしているにもかかわらず、トップに来るのはJavaそのもののページ。
うちはあまり検索エンジン最適化のことを考えるつもりは無いのですが、さすがに完全に来る目的から外れている内容かどうかは伝えていかないといけないと思うのでこのあたりはきっちり表記しておきたいと思います。
ミディビの自動バックアップ機能を作ろうと頑張ってみましたがダメでした。
アプレットのstopメソッドで記録してstartメソッドで呼び出しというのを試みたのですが、どうにもInternetExplorerの場合ページ移動しただけで全リソース解放してしまうようで、どのタイミングで初期化を入れてもどのタイミングで記憶してもことごとく消えてしまいます。
お絵描きアプレット等ではいったいどこにデータを保管しているのか不思議です。
何か変数に修飾詞をつければ保持されるのでしょうか。
それとも特別なデータの置き場所がどこかにあるんでしょうか。
まだ調べる必要がありそうです。
ミディビ、なんだかエラーが起こるようです。
不完全な状態でロードすると本来起こらないはずの例外が発生するというのはわかっていましたがJavaごと落ちるというのは完全に想定外でした。
エラー終了してもどこかにデータを残しておく方法はないかな…。
ミディビ作ってました。
もうほんとに色々あって。
OutputStream探し。
MIDIデータをbyte配列としてメモリ上に一時置いておかなければならないんですが、可変長byte配列を扱うのに便利なクラスが無かったんです。
まずLinkedList。
これはオブジェクトなら何でも要素にできるし項目の追加が高速。
そしてデータは一気に配列としてもらうことができる!!
というものだったのですが、LinkedListで扱えるのはオブジェクトだけなんですよね。
byteはオブジェクトじゃないので扱えないんです。
そりゃByteオブジェクトにすれば入れられなくは無いけどそうすれば高速化が無意味ということで。
第二候補がByteBuffer。
名前の通りbyte型のバッファを扱うクラスで、こちらは正真正銘プリミティブ型のbyteなのです。
ところがどっこい抽象クラス。
何か実装しなきゃならないそうです。
実装が嫌だから既にあるクラスから探しているというのに!!
仕方なく自作。
経験上MIDIは数十キロバイト程度の大きさになるのでバッファを10kBごとに増やす方法で不必要にメモリの使用量を増やさず高速化を図っていました。
OutpurStreamのサブクラスとして作っていたんですよ。
そこでどんでん返し。
ByteArrayOutputStreamという私のやろうとしていたことまるっきりそのままの名前のクラスを発見したんですよ。
その内容を見てみてビックリ。
私が自作していたOutputStreamと同じことができて、さらに私が思いもしなかったさらに便利なメソッドまであるじゃありませんか!
速度は自作のほうが出せそうな気がしますけど、速度が何だってんです!
ここまで理想どおりのものをあつらえてもらいながら使わないというのはJavaに対して失礼というものです。
CGIに渡すデータをどうするか。
ここはお絵描き掲示板をお手本に。
というわけでしぃペインターの出力をそのままファイルに書き出すCGI作成。
binmodeを忘れたりして出力がおかしなことになったりしてました。
識別子・サイズ・実データが順番に並んでいるようです。
MIDIにはテキストとしていろんな情報が入れられるのでもろもろの情報はMIDIに埋め込んでしまえばミディビが受け取るデータはMIDIデータだけでよくなります。
そうすりゃオエビのように面倒な処理は抜きにしてデータ受け取りCGIは受け取ったデータをそっくりそのままファイルに出力することを考えればよいのです。
で、関係ないMIDI。
出だしの部分だけ。
後半で発展させてゆきます。
パネルγの遊び方9と自己紹介とゲーム記のゲームボーイと同じくロクヨン、それぞれ更新しました。
昨日書き忘れていたところと、たくさんの質問への回答と、標準語化をしてみました。
レゴ、昔買ったものを5つほど復元しました。
ずっと前に作ってばらさずに置いたものを数には入れてないので全体としてはもう少し多くなります。
Java、とりあえずサンプルを落として見てみました。
eclipseが異常に重いのが気になったけど、クラスの扱いについては大体わかりました。
Class1 c = new Class1();
昨日断念した音楽、今日何とかMIDI化に成功しました。
なんに使うかはまだ検討中。
メテオスでこんな惑星があったらいいなと思っていたときに妄想中の惑星のBGMとして思いついたものだったのです。
うちってMIDI化するときにどうしても半音を使ってしまう悪い癖があるのね。
しかし今までMIDIだからいいやとPiccoloを使いまくってたけど結構無茶な奏法だったのね…。
というわけで、「ByteEdit」をアップしました。
メニューのバージョン情報が間違ったバージョンを表示していたのでそれも直しました。
ついでに、注意事項のダウンロード関連も変更しました。
いろいろと詳細を加えてみました。
ただ、長くなると読む気が失せるので、トップページから行ける全体的な注意事項に関しては、可能な限りいらない部分を削って、極力短くなるようにしました。
JavaのIteratorって、便利そうだけど、スーパークラスをひとつしか指定できないということを考えるとあまり使い道ないかも。
いや、インターフェースだから問題はないのか。
でもどっちにしても数え上げ専用のクラスを使ったほうがよさそうだから関係ないか。
数え上げの専用クラスを作るのはよくても、それで.classファイルが増えるのはやだなぁ。
どっちみち使うときはJARひとつにまとめるからあんまり関係ないのだけれども。
VBで、Withブロックを使った場合と使わなかった場合のユーザー定義型へのアクセス速度を計測していたのですが、結構理不尽な結果が出てきています。
高い確率で明日更新するので、「With使ったら速いぜ~」などという情報を無条件に信じ込んでいる人は一度見ておいたほうがいいと思いますよ。
学校のパソコンで、JBuilderが固まるためJpadというエディタで作り直していたのですが、やっぱり固まりました。
どうやらNetscapeを使っていると操作できなくなるみたいです。
ブラウザを使わないとアプレットの確認ができないのですが・・・・嫌がらせですか?
爽やかな初夏の陽気、授業が終わって外の新鮮な空気を胸いっぱいに吸い込もうとしたら・・・・
迂闊だった。ドアの付近は学校内で数少ない喫煙所・・・・
「ふにゃgba」は、任天堂が特許を取ってエミュレータがどうのこうのとややこしいことになっているため、開発を中止することにしました。
エミュレータを使わずGBA実機に転送して遊べば問題なしなのですが、いろいろと大変なのでもうやめます。
ん?待てよ、GBA用のJavaVMを作って、動作テストはWebブラウザのJavaアプレットで行って、完成したらVMごとGBAに転送してみるとか?
要は、GBAのエミュレータをパソコンで動かすのではなく、パソコンのエミュレータをGBAで動かすということです。
「ふにゃふにゃ」用のステージをアップしました。
本当はステージ内部に潜り込めるバグがあったのですが、ほったらかしでアップしてみました。
本当はゲーム本体を改良してステージももっとよいものにしようと思っていたのですが、そのままでアップしました。
どこに?あの場所に。
「アクセス解析」で、結果表示中に途中で中断する機能を入れてみました。
ループ中にDoEventsを入れたのですけど、元々の処理が非効率的で非常識なほどに遅かったので、DoEventsを入れても以前に比べての遅さはほとんど気になりませんでした。
プレイステーション2用のメモリーカードを買いました。
これでドラクエ5が勧められそうです。
その前にドラクエ7をクリアしなければなりませんが…
ちなみに、ドラクエ7は、いつでもラスボス戦に行けるようになっていて、今は天地雷鳴師を目指して修行中です。
HPマナーの参考にするため、普段は行かないようなやなサイトを見て回りましたが、いろいろありましたねー。
客へのローカルルールがやたらと厳しいのに、自分の違法・違約に関しては知らん振りとか。
アップロード掲示板に貼り付けた画像を直リンクするヤツなんかほんのごく一部しかいないと思っていたのに探せばウヨウヨ出てきたり…
でも確信犯相手じゃ効果ないだろうなぁ…
プログラム及びスクリプトの開発が滞りがちなので、しばらくはHPマナーを更新しつつプログラミングをこっちで進めていこうかと思っています。
とりあえず、プログラミングのページの名前を若干変更しました。
これにはちょっとわけがあるのですが、そのことについては後日お話します。
学校のJBuilder、やっぱりだめです。
Netscapeで情報を見ながらプログラミングするので、相性が悪いのが原因かもしれません。
もしかしたら純粋にJBuilderかWindowsXPのバグなのかもしれません。
あるいはもっと単純に私の操作ミスかもしれません。
それとももしやウィ…
今頃気付きましたが、サンフラットさんとこのふらじゃん2・3がフリーウェア化されてました。
というわけで、本当はログを直接編集しないといけなくて面倒だったのですが、リンク集を変更しておきました。
これでもう全部フリーウェアなんですね。
学校で使っていたJBuilderが、マウスのクリックイベントを受け付けなくなりました。
おかげで非常に使いにくい思いをさせられました。
とりあえず、キーイベントでのeの使い方は、e.GetKeyCode()で押されたキー・離されたキーの情報を得ることができます。
そのとき、定数なども、e.VK_SOWNなど、クラスのメンバとして表さなければならないのは、ある意味JavaらしいといえばJavaらしいように思えます。
学校のパソコンでJavaアプレット版「ふわふわふにゃ」を作っていました。
とりあえず、サンプルからキーリスナーの部分を引っ張ってきて、エラー取りをしながらJavaの使い方に慣れていくことにしました。
インプリメントやらイベント記述などはコピペで済ましたり何と無く感覚で作ってみたりでできそうですが、eやら何やらを使う部分はさすがにマニュアルを見てきちんと作らないと厄介なことになりそうです。
さすがに行き当たりばったりでずっと作っていくのはオブジェクト指向の考え方に反すると思うので。
WindowsXPのアップデートをしてみました。
特に必要な更新はありませんでしたが、一応更新しておきました。
ゲームのページを更新しました。
どこにあったか忘れたor知らない人は別に見なくてもいいでしょう。
好き放題書いてますから。
学校のJBuilderが使えるようになりました。
自動的に入力候補が出たりアプレットのテストが気軽に行えるというのがいいですね。
これを機に「fffj」の開発を学校のパソコンに移行します。
電気の実験(実のところ電圧・抵抗を測るだけ)をしていたら、なんと、コンセントに機器を接続しても全く動かない!!
と思いきや、ブレイカーが落ちていただけ。
9.00V電源を使っているのに電圧降下が9.02V!!
0.05Vほどメーターがずれてました。
今日はエレクトロ…(以下略)の小テストがありました。
とはいっても、学期末の試験と足して2で割るので事実上中間テストですが。
とりあえず、110点満点中の、90点分の解答欄を埋めました。
全部記述式なので大幅に間違っているということはないはず・・・・
中国の一人っ子政策、いろいろと例外があるようです。
漢民族以外の少数民族は、都市部では二人、農村部では三人までOKだそうですし、漢民族でも、農村部では第一子が女児だった場合には二人目まで産んでよしということになっているそうです。
ちょっとJavaアプレットによるゲームを作っています。
本当はずっと前から作り始めてはいたんですが。
父の話、面白おかしく話すことはできると思うのですが、やめておきます。
父は回復してもここを見ることはないでしょうが、やはりそういう問題ではないと思います。
冷蔵庫を使うと電気代がかかる理由は熱力学の第二法則があるせいらしいです。
Javaでとりあえずサンプルを見ながら適当にプログラムを作り始めてみました。
なんか早速推奨されないAPIがどうのこうのと怒られてしまいました。
Java関連で、「砂のページ」というところが面白いです。
アドレスは
http://www.kdn.gr.jp/~shii/sand/index-jp.html
です。
「上に落ちる砂」がお気に入り。
「NeoMupl」で、情報バーの大きさを変えるメニューを作りました。
実際に大きさは変わりませんが、どれを選んだかは記録されます。
これで記録項目"ShowInfoBar"は無意味になりましたが、レジストリに関する設定を変えると消えてくれます。
Javaの開発環境をダウンロードしてきました。
とりあえずネット上に転がっていたサンプルをいくつか見てみて、大体の雰囲気をつかんだ感じです。
具体的にどうコーディングするかはもうちょっと研究が必要そうです。
そろそろサイトの更新期限が近づいています(自分で決めた期限ですが)。
明日明後日で更新しなければならないのですが、ネタが思いつきません。
「NeoMupl」のことですが、ここまできて根本的な問題を忘れていたことに気付きました。
音楽再生をどうするかをまだ考えていなかったのです。
前みたいにVBMP3とかMCIとかいろいろ使ってもいいんですが、できることならそのへんも自分で作りたいのです。
となれば、その構想が出来上がるまでまた開発が中断されそう…
いやいや、そんなことはありませんよ。
最悪の場合、MIDIだけをサポートすればソフトとしては出来上がるんですから。
つまり、あとは圧縮Waveをどう扱うかになるわけです
Javaについての本をもう少し詳しく読んで見ました。
ほうほう、javacを使ってコンパイルするのか。
ハイ、終わり!
やっとJavaアプレットについて書いてある本を見つけました。
ふむふむ・・・Appletクラスを継承して作るのか・・・
ハイ終わり!
立ち読み約6秒で本が要らなくなった美文でした。
なんかサーブレッドって変換位置変だな~と思っていたら「サーブレット」でした。
変換位置は同じですけど。
今日は学校でトランプマジックについての講義がありました。
つまり、どのようにしてタネを仕込むかということをやったわけです。
熱統計力学の授業の、二回前のときにウトウトしていて聞いていなかったところを自分で勉強しました。
そして今日やったのは・・・密室殺人事件のトリック!
いや、ちゃんとした熱統計力学の内容でしたよ。
学校でJavaアプレットに関する本を探していたのですが、Javaサーブレッドとかばっかりで見つかりませんでした。
Javaアプレットによるゲームは諦めるか・・・?
「ゼルダの伝説-時のオカリナ」のサントラCDを借りてきました。
入会したからには使わないと!
その中にあった、リンクとシークが中ボス軍団に囲まれているイラスト、一度あの状況になってみたいものです。
「風のタクト」では似た状況がありました。
タートナック&モリブリン軍団との戦いです。
あれはきつかった、少しだけ。
それでも回復なしだったからどちらかというと余裕があったんでしょうが。