DMD-0.76 対応。proxy を適当に追加。listdir を使うように。 linux_listdir は news に Ant 氏が投稿していたものです。 phobos に入ったらそちらを使うように変更します。
proxy がいいかげんなのは、Socketライブラリが 無いといまひとつやる気が起きないからです。 実は自分で SocketStream の Linux 版を作りかけていたりもしますが、 完成させる根性は現状ありません。
Win32 は右も左もわからん人間なので、 かなりお世話になりました。 ただ 7zip には苦しめられましたけど。 (Linux 版 7zip をビルドできなくて、 結局 wine & 7zip.exe で展開するというへたれっぷり)
件の MacOSX 対応と Windows の bml ダブルクリック時に 再現条件の説明しにくいバグがあったので修正。
Windows のエクスプローラでダブルクリックした時は 関連付けしてある exe ファイルをそのファイル名を 引数として起動してくれるわけですけど、 そのファイル名がややこしい場合は、 ありがたいことに MSDOSファイル名 (と呼ぶのでしょうか、ORIGIN~1.BML みたいなの) に勝手にしてくれるらしく、 拡張子 bml は lower case 決め撃ちだったのに 勝手に upper case に変換してくれたために エラーが出ていた、とかそんなストーリーらしいです。 よく考えると現状でも Hoge.Bml とかだとエラーになる気がします。 ダメダメ。
あと、SDL_kanji_f1b もビッグエンディアン対応しました。
追記: ソースの方、 SDL_endian.h を include しわすれてたので修正しました。
Web サーバを再生産しました。 手軽なコンフィグ設定ツールが欲しい、 私的に自由にいじれるプロキシが欲しい、 手軽に実験に使える httpd が欲しい、 などの要求が自分的にあったので作成しました。 まだプロキシの機能がありませんが。
まあ Linux では使えてる感じです。 Windows ではどうせ設定ツールとして 添付することしか考えてないので良いか。
出せるもんは出していこう… 一月位前に作ったもんですけどね。 localではそれなりにテストされてます。
■ [Update]: 白い弾幕くんをひっそりとバグフィックスしました。
おたくツーさんご報告ありがとうございました。
03.10.22■ [Update]: 白い弾幕くん-1.5.5
暇が少しできたので、久しぶりに。 ちょこちょことバグフィックスなどを。 今回いろいろやったので逆に作っちゃったバグがあるかもしれないので、 その場合ご連絡頂ければありがたいです。
この場合のバグというのは、 どんなことをしようが何も言わずに落ちたらバグ。 予想外の挙動を示したらバグ。 というような基準で考えています。 今のところ、 不可能な画面サイズ指定で落ちる場合がある (エラーを返すんじゃなくてそのまま落ちるので回避できません) のと、 ヘンなファイル (拡張子が bml, lua, xml, act のどれでも無い) を指定して実行すると落ちるのがバグと言えると思います。 ていうか後者は回避できるんだからしろと。
最近 Lua弾幕に凄いのが増えてきて、 自機が弾撃っちゃうような弾幕(というのか)を見るにいたって、 ちょっとでも文法間違えるといきなり落っこちるような状況では 大変だろうなと思ったのでちゃんとエラーメッセージを出すように。 ていうかもっとはやくやれという感が強いです。
画面サイズころころ変わるのウザいよ、ごもっとも。 というわけで変わらない方をデフォルトに。 SetVideoMode を二度呼ぶと落ちたりする環境もあるかもしれず、 ひょっとしたら今まで落ちていた環境でも動くかもしれず。 もし今まで動かなかった人で動くようになっていたら教えて下さいませ。 そういや Linux & XFree86 だと画面サイズが合っていない状況で フルスクリーンにしちゃうと落ちちゃうけどどうしようもないな…
bmlファイルで存在しないグループ名が指定された場合、 userグループとして扱うようにしました。 新しいグループを作りたい人は勝手に名乗って下さい。 三つ程度そのグループのファイルが集まったらグループ名を追加します。
リプレイ時にスペースで落ちるのは昔の Boost.lexical_cast の問題。
Windows版にしばらく最適化オプション付けてなかったかも、 というマヌケな状態。 速くなってたらすいません。それが本来の姿です。
追記: デフォルトで画面最大になってないじゃん、と気付いたので修正しました。
■ [Update]: bogoYAML は YAML に改悪を加える
YAML ってそれなりに使ったんですけど 使わないっていうか邪魔な機能が結構多いなーとか 思ってたんですけどそんなこと無いですかね。 ということで雑な YAML for D を作りました。
一応 YAMLデータを D 言語ネイティブな配列と連想配列に変換できるのがウリ。 D 言語でのテンプレートメタプログラミングのサンプルにもなるんじゃないかと。 D 言語の template は普通に強力だと思いました。 コンパイル爆速だし。型演繹がすごく欲しい。
03.09.23■ [Update]: libBulletML for D と d_cpp
ABAさんに rand は設定できないとダメだ、ということと、 alias bit bool はいらんということを指摘を受け、 ごもっとも、と修正。
管理するファイルが増えるとややこしくて涙が出てくるので、 弾幕 360度の方で libBulletML for D も同時配布ということにさせて下さい。
SWIG使うことも考えたんですけど 動いてるものをいじりたくない Windowsいじりたくない とヘタレな理由でやめました。 しかし今後 C++ を使いたい人は SWIG を使った方が絶対に良いでしょう。
Makefile.win32 を付けたり、 ちょっとした修正をしたり、 インチキ英語で説明を書いたり。
あるいは barrage 360 deg. といいます。 弾幕ビューアーです。ゲームじゃないです。
D 言語でいろいろするサンプルといった趣が強いので、 ものとしては実にやる気のない作りです。
スクリーンセーバーにしようと思ってたんですけど、 めんどうだし、私を含めて誰も実際に使いはしないだろうと思ってやめました。 俺は使うぜ、みたいなことを言って下さる人が一人でもいれば考えます。
d_cpp と libBulletML は追ってこちらの変更に追従させます。
騒いでた問題はどうしようもなくつまらん問題でした。 まあ glu32.lib が無いのが問題なんですけど、まあいずれ作ります。
03.09.18glut.d を作りました。 あと SDL を問題の焦点から外したかったので SDL の tutorial を glut に訳したものを glut.d のサンプルとして。 これでもまだ Win32 では Access Violation…
opengl.d, openglu.d って extern(Windows) とか import windows とか、 そもそも gl.d, glu.d じゃないとか気になるなあ。
03.09.13■ [Update]: libBulletML for D
アイアイサー。といっても 元々 libBulletML と回避機関を D で使いたいから ごにょごにょしてたわけなんですけど。
回避機関は接続部が雑もいいとこなんで苦労しそうなんで、 こちらを先にやってみました。テストは実に不十分です。
実用物に適用してみることによって、 d_cpp のダメなところがわかったので、 こちらも修正してあります。
libBulletML も parser に渡す引数が std::string => const char* に変化しています。 これはちょうどこのあたりで VC の DLL のデバッグビルド版で 問題を報告して頂いているので、 動作確認の後、C++ 版の方も追随させ、統合する予定です。
03.09.12■ [Update]: D 始めました。 - C++クラスライブラリを使う
ああー疲れた。 永遠恋人 C++ を D から使うためのモノ。
まだ Windows環境でテストしてませんし、 インターフェイス、機能もイマイチと言えばイマイチ。 いつもどおり、ご意見ご指摘んなもん既にあるよなど、くだされば嬉しいです。
役者は揃った。私的に。
> make clean all rm -f *.o cpp_test cpp_inter.d g++ -g -c cpp.cc perl create_d_import.pl cpp.cc cpp_inter.d dmd -g -c cpp_test.d gcc -g cpp.o cpp_test.o -o cpp_test -lphobos -lpthread -lm
なんか凄い make 光景だと思った。
■ [Update]: libBulletML
VC で落ちちゃう問題をご指摘頂いたので修正。 さらに VC 用のプロジェクトファイルも頂いたので追加。 nakさんありがとうございます。 VC ユーザ以外には関係ありません。
最近細々したことばかりやってるねえ。 ところで libbulletml-0.0.2 というのはどこにあるんだろう…
こいつは何かの役に立つかもしれないし一応晒しておこう… VC と他の STL でコンパチな auto_ptr::reset と auto_ptr::release 相当。
久しぶりに VC 触ったけど本当にこれ使って 1年間バイトでキャドキャドしてたのかと 不思議になる位よくわからなかった。
小ネタはいいですねえ。 ですので、細々と書いてた小ネタをまとめておく場所を作りました。
最近はアンテナをこさえてたんですけど、 タイムリーに同時期に開発されてたっぽい K.INABA さんの とあまりの違いっぷり。 こちらは Ruby から system 文で perl だの wget だの w3m だの diff だのを動かしまくるひどいものです… ソースの行数も十倍以上差があるようで。
03.08.28紫月飴さんにバグの指摘を頂いたので修正。 かなりびびるバグでした。なんでこんなことになったんだろう…
連絡を頂いた時は絶対 SDL_kanji_f1b だと思ったんですけど。 なんでバグがないんだろう…
忘れてましたけど、 天狐を見ればわかる通り、 author というタグが出現してます。 group だけでは作者が特定できんのでアレだな… と思ったのでなんとなく入れてみました。 現状何にも使ってませんが、ひょっとしたら使うようになるかもしれません。 形式としては <author>作者を表す任意文字列</author> という感じです。 古い弾幕にわざわざ入れてもらう必要はありません。
気が向いたのと必要に差し迫られたので、 ポーティングな作業に SDL_gfx 一式と SDL_sound を追加。 (not checked) と書いてあるやつは実行チェックしてません。
03.08.27グループに交通安全Xオリジナル、東方、エスプガルーダロケテを追加。 ついでに色々整理しました。 東方の方は許可取らずに弾幕のグループ名変えちゃいました。 もしご覧になっていて、問題あればご連絡を下さい。
フォントの操作を SDL_kanji_f1b に移行。
総数254とのことですが、 凄い量弾幕を頂いていてありがたいこってす。 で、 なるほど(03/08/24より)と思い、感想なんぞ書いてたんですが、 なんかまとまらんのでそれはまた別の話として、
ヘンな弾幕とかは全く気にせず入れて下さって結構です。 難しすぎ、簡単すぎも無問題。 極端な話、 これあげてもらっても結構。 基本的な方針として、昔っからこれは弾幕ビューアであって、 ゲームではないと認識してまして、 などと言いつつも、 頂いた弾幕を難易度調整していた時期があったりしたんですが、 それってのは何故かスコトラとかやってる人がいたんで、 ゲームとして一応難易度調整しておこうと思ったりしてたからです。 弾幕やさん作ってノーマルに影響が出ない弾幕を登録してもらう ってスタイルにしたのは難易度とか気にしないで 作ってもらおうという意図もあったりした気もします。 そのへんの意思表示のために OKGなんていう rank調整すらしてないムチャな弾幕を作ったんですが、 よく考えればそう書きゃ良かったですね。アホか。 ちなみに OKG は避けれなくも無いです。
■ [Update]: SDL_kanji_f1b
VC やら BCC やら icc やら kylix やら NetBSD で動作確認したので。 SDL_kanji_rle っていう名称はどう考えてもおかしかったのでやめました。 SDL_kanji は SDL_kanji_bdf とすると対称性ができて良いなと思っています。
ポーティングな作業 なる項目を追加。 サルも おだてりゃ木に登るんで、 SDL_image, SDL_ttf, smpeg もやりました。 実のところ、自動でやるのは大変だろうけど手動でやるのは簡単なんです。 SDL_gfx, SDL_sound, SDL_kanji, SDL_kanji_rle 位は 自分的に必要なんでやると思います。 気が向いたら SDL_net, SDL_gui, SGE あたり? SGE は C++ 混じってやがるからどうなるか知らない。
先日のパッチを採用してもらいました。 lua.d をコンパイルしようとすると lauxlib.d で 定義されている luaL_ref が見つからなくて コンパイルできないって問題がありまして、 これは lua 自体の問題だと思うんだよな… C ではマクロだからいざ使わなければ 問題にならないから放置されてんだろうな。 まあ相談ですね。英語で。しんどい。
03.08.07■ [Update]: libBulletML
ずっと放置してた問題をちょこっと解決。
たぶん敵が発生してから最初のフレームの挙動が変わっている気がします。 発生したそのターンはたぶん何もしません。
あとは VC6 のダメダメ auto_ptr に対応したはず。 一生懸命 DECLSPEC を付けて回ったので VC で DLL も作れるはず。
ライセンスについて、GPL ってそういうライセンスなんだー と思うようなマヌケな勘違いがあると気付いたのはずいぶんと前にも関わらず、 今までずっとさぼってたんですが、ふとしたきっかけで今回リリースし直しました。 今後は修正BSDライセンスということでお願いします。
lua を用いた bml ファイル中に ] を記述すると syntaxエラー扱いになってしまうというバグを 大原さんに指摘して頂きましたので修正しました。
弾幕やさん経由で結構弾幕が増えています。 登録して頂いている方々に感謝します。 あと、あそこに登録したものはリアルタイムにパッケージに反映されますんで、 まとめて落としたい場合はパッケージの方を落として頂ければ良いかと。
弾幕やさんの方、ふとコメントしたくなることとかあるから コメント機能でも付けようかと思ってますが、本当にやるかは知りません。
1.5.2位の時にふと気になって雑に調べたもの。
・ソースコード ぼく 14000行 lua 9000行 boost 5500行 tinyxml 2300行 ・だんまく ぼく 8870行 大原さん 7000行 おたくツーさん 2500行 ABAさん 1600行 紫月飴さん 1500行 たまもくろすさん 530行
関数まわりを。 K.INABAさんの偉業に含まれていない delegate とかそのへん。 あんまりわかってなかったんで、 とりあえずそのへんを適当に訳してみました。
C++ が std::mem_fun やら boost::function なんかで 実装に苦労し、コンパイル速度を犠牲にしてやっていたことを、 言語レベルのサポートがあればいとも簡単にやってしまうわけです。 カリー化の言語レベルサポートも欲しいねえ。
こういう貴重なサイトはページランクを上げないと…
SDL_sound を使うことによって、Windows での mp3 の問題を駆逐しました。 もう ID3v2タグも大丈夫だと思いますし、 トコトコ音も鳴らないと思います。
副産物として対応フォーマットが増えました。 .mp3, .mid, .midi, .ogg, .mod, .wav, .mpg, .aiff, .au, .fla, .shn, .voc, .raw, .xm(など mod関係) (追記: .fla と .flac も OK) です。 ただ Windows な人は MIDI はダメです。 こいつは私の力ではどうにもなりそうになかったので、放棄しました。
mpgが大きいというのは意外でした。 おかげで mpg は smpeg もろとも捨てさるつもりでしたが、踏み留まりました。 mp3 は mpglib が鳴らしているので、mpg の音だけ拾うために smpeg.dll の 210kB があるという贅沢っぷり。 あとなんでか知りませんが、チーズはスロー再生じゃなくなったみたいです。
大原さんに指摘頂いた、select2nd が非標準である件と、 ygg.o を含んでしまっていたパッケージミスを修正しました。 こっちはソースからビルドする人じゃなければ関係無し。
チーズの mpg を何回かプレイ。 短いやつをひたすら繰り返すのが案外面白いなあ… とりあえず 349000点。
ソースがとんでもなく汚なくなってきましたが バグが無ければしばらく放棄する予感がします…
FFTかまして楽曲解析したら結構曲に合うようになりました。 イロイロ夢があったような気がするけど、 とりあえず凄く普通にやっちゃいました…
ゲームの曲など、リズムがはっきりしてるものはいい感じかと。 静かなところで突然怒鳴るような曲はひどい弾幕になります。 とりあえず、 ZUNさんのところの リーインカーネーションの最初の方が個人的にはいい感じ。 避けれませんが。 Winな人は ID3v2 タグを外してもらわにゃなりませんし、 トコトコ音は健在ですが。
紫月飴さんによるオールレンジパッチをモードとして選択できるように。 かなりの残虐っぷりだったので若干弾速を落としました、が、 あまり意味が無かったようです。 プログラムに手を入れずにこんなことができるなんて気付かんかったです。 できる限りデータとプログラムは分離しておく方が思わぬ収穫があっていいねえ。
あとはフォントが綺麗に。 オールレンジパッチの一部として配布されてたものですが、 こっちの方が断然良かったのでこちらに統一させて頂きました。 そうそう、紫月飴さんといえば、私も HHK Lite2 を最近買いました。 奇遇ですな。英語配列で黒で USB ですが。
ID3v2タグについて、よくメール頂くんで、もう一度。 mp3 には曲の情報を入れる空間があるわけですが、 ID3v2タグっていう種類のヤツは私が使ってるライブラリで サポートされてないみたいなのです。 で、Windows では落ちちゃうんで、 ID3v2タグを外すか、ID3v1タグに変換して下さいと。 それは WinAmp か SuperTagEditor というものでできるらしいです。
そんなこと書いてる暇があればなんとかしろと。 ID3v2タグ対応とトコトコ音は今日やるつもりだったんですが、 いろいろハマって挫折。 smpeg はどこいじって良いのやら。 mad は GPL がねえ… cmd_pipe は Win32化できず。 ということでどうせ Mix してないので、 SDL_mixer をやめて SDL_sound を使うことで対応としようかなー、 と今は思っています。
斑鳩に凍らされた弾幕熱がちょっと戻りつつあるらしい…
03.07.22昨日のやつをビルドした手順を記憶から書きました。 実にいい加減な書きっぷりです。
ついでに 別ページを設けました。
03.07.21むっちゃ簡単なゲームを作りました。 作りもコーディングもインターフェイスもいい加減です。 しかし D/SDL、十分使えるねえ。 Winバイナリ作るのは C++ より楽だったと思うよ… いまいち D らしいコーディングはしてないけどね。
ところでこのゲーム、もともとの名前は何だったんでしょうか? 知ってる方情報下さいませ。
敵がやたらと連続攻撃してくるという致命的なバグを修正しました。 これは 1.5.1 で混入したバグで、 環境/用途によっては必ずしも致命的なことにはなりません。 パッケージングしている時間が無いので バージョンとかは変わっていません。 おたくツーさん、デバッグ協力ありがとうございました。
03.06.26■ [Update]: CSS
よくわかんないけど簡単そうなので CSS 使うことに。 理由は白い背景に青いアンダーラインのリンクが嫌いだから。 今まで放置していた理由は自分はほとんど w3m でしか見ないから。
03.06.20■ [Update]: 君は自ら生みだしたものによって以下略。
作りたくなって発作的に作りました。 robocode で人間 VS CPU を実現するためのものです。
03.06.16ちょこちょこやってた作業がある程度の量になったので。 これからもちょこちょことやっていきます。 基本的に私のメモなんで、私の興味の赴くままに見ていきます。
どうしても Eiffel との比較が多くなるね… 見た目は全然違うのにね。
D って見ていくとサポートされているパラダイムは凄い数だけど、 個々のパラダイムの機能が少しずつ足りない感じがします。 これからに期待、なのかな。
03.06.11大原さんに既に頂いてる弾幕を加え忘れるという大失態を。 私はそういう失敗をやる人間だと信じてるからその予防として 弾幕やさん を作ったんだけどねえ。
これでしばらくいじりません。 あとテックウィンから載せるよメールが来てました。
色々いじりました。 とりあえず弾幕17個もありがとうございます。 おたくツーさん。
まあ、メインは このへん で書いてたもののうち、スタイル指定以外をやった感じです。 最近及びこれからあまし時間が無いんで、 弾幕メールもらっても反映が遅くなるのは悪いなあ、と思ってたので、 弾幕アップローダ を作るためにやった変更です。 詳しい変更内容はアップローダ中のサンプルを適当に見て下さい。
配布ファイルを直接いじれるっていう愉快な実験です。 気軽に使って頂ければ、と思います。 個人的にもメールより処理が楽なので助かります。
ちなみに今総弾幕数199なんで、最初にアップロードした人は 記念すべきかどうかは知りませんが、200個目になるという特典付き。
アップローダは http 的には application/bulletml というヘッダを返しています。 拡張子だけで判断できてしまうブラウザ以外を お持ちの方で直接弾幕を実行したいような人は 適当に設定して下さい。 意味がわかんなければよくわからんけど不便だっていう連絡下さい。
できれば全てのファイルをこんな感じで扱えれば良いな、 と思っています。その試験というか。 HTTPクライアントさえ組込めば、 WindowsUpdate みたいなこともできるし夢は広がるねえ。
リナザウでプロットを。 学校で実験という授業があるのですが グラフ用紙にプロットとかをマジメにやるのがめんどいんで作りました。 すごくやるきのない物体です。すいません。
新弾幕記述言語 LuaBullet をでっちあげました。 詳しくはダウンロードパッケージ中の LuaBullet.txt を参照。 ちなみに Lua 歴一晩なんで、間抜けなミスをやっているかもしれません…
BulletML は簡単かつ結構強力ですが、 LuaBullet は難しいけどなんでもできます。 プログラミング言語ですし。 今回追加した弾幕は BulletML ではちょっと表現しきれないものばかりかと。 黄流発狂を再現する日が来るとは思わなんだ。
ただエラーハンドリングとかドキュメントとかが不足しまくりなんで、 敷居は尋常じゃなく高いはず。API もとっても不親切。
弾幕 9個追加。 おたくツーさんから6弾幕、 自分で作った LuaBullet のサンプルを兼ねてるものが3弾幕。
斑鳩スキンと撃破伝スキンを おたくツーさんに頂きました。
03.04.26弾幕7個追加。 おたくツーさんから4弾幕、 大原さん から頂いたのが3弾幕です。 ありがとうございました。
前回混入したバグをフィックス。 あと大往生スキンのバグフィックス版も頂きました。
あと、あまりにセレクトとかの画面の移動がめんどいんで、 ページアップとページダウンを追加しました。 キーボードの PageUp, PageDown、 ジョイスティックのボタン6 とボタン7 で OK です。 ちなみに私のジョイティックではこれが LR なのです。
03.04.21弾幕12個追加。 大原さん から頂いたのが6弾幕、 紫月飴さんからが4弾幕、 おたくツーさんからが2弾幕です。 みなさんありがとうございました。
ちなみに今まで頂いた弾幕は他の弾幕に合わせて、 適当に難易度調整したり持続時間調整したりしてました。 これはスコトラとかやってた方がいたので、 まあ難易度をあまり変えたくなかったからです。 ですが、既に160個も弾幕があって個々のレベルは全然違いますし、 調整してる時間も無いし、適当にいじって元の弾幕の良さを 奪ってしまうのもアレですし、基本的にやめることにしました。 ABAさんが昔おっしゃっていた弾幕美術館の方向で。
一応調整は、レベル50が難しすぎない、レベル0は凄く簡単、 持続時間は30秒程度をめやすに、1分以内で。 などと調整してました。 合わせて頂ける嬉しいかもしれません。
スキン選択をコンフィグに追加。 おたくツーさんからは大往生スキンを頂いたため。 ただし多分バグ入り。 コンフィグで変更してすぐに始めると落ちるかも。 まあもう一回起動すれば多分大丈夫。 あと回避機関がとても弱体化します。
あと、改行コードが CRLF(Win), LF(Unix), CR(Mac) となんでも 良くなったような気がしますが、気のせいかも知れず。 最近本当に適当だな。
おたくツーさんの弾幕の作り方。 わかりやすいチュートリアルになってて良いです。
G-わんげ鳩大往生XII〜絆ダウン〜。 まあ最近微妙にこういうのが流行りなのか知らないんですが、 適当にみんなで集まって一つのゲームを作ろうっちゅう話です。 楽しげ。 で、最近弾幕のプロトタイプを BulletML で記述している方がいたりして、 やっぱりそういう用途には非常に良いなーと実感。 ところで、この弾幕勝手に使っちゃっても問題無いのかな。 許可もらいたいけど、方法が想像もつかない。
LuaBullet を作りたいなと思う今日この頃。 …と思ったら、 既出。
あまりにひどいバグだけ修正。 大原さん ありがとうございます。すいませんでした。
03.04.15大原さん に大改良施して頂きました。 随分まともなゲームになりました。
懺悔。 改良版を受け取ったのは 3月24日だったのにとても遅くなりました。
言い訳。 Winバイナリがなかなか作れなくてね…とか。 未だに Borland C++ で作ったやつは落ちるんで、 Mingw32 でコンパイル。つまりまだバグ入り。
次は白い弾幕くんを。手元に弾幕結構あるなあ…
03.04.10mp3 の ID3v2 タグによって落ちちゃうバグを修正できたと思います。 まだテスト不足なんでなんとも言えんものがありますが。 あとは曲名あたりのとりあつかいがあやしかったのを修正。 同じ曲から同じ弾幕が作られるようにしました。 曲を攻略して下さい。
mp3 で落ちちゃうバグはいろんな方に報告して頂いて助かりました。 問題となる曲の例を紹介して頂いた、 紫月飴さんと、 問題を特定して頂いた 569=574氏に特に感謝。
しかし ime.nu が REFERER になっていると、 リンク元に貴重な情報があるかもしれん場合は、齒痒い。 どうにかしてくれんもんか。
smpeg に修正加えました。以下の diff を参照。 対象は MPEGsystem.cpp です。
138a139,149 > /* ID3v2 tag */ > if(pointer[0] == 'I' && pointer[1] == 'D' && pointer[2] == '3') { > Uint32 size = 0; > Uint32 i, p = 1; > for(i = 0; i < 4; i++) { > size += pointer[9-i] * p; > p *= 128; > } > pointer += size + 10; > } >
smpeg.dll を strip すると bpo.exe が実行できなくなりますが何故ですか。 よくわからんですが、これ以上 bpo にかかずってもいられないので、 とりあえず strip してません。 おかげでサーバの容量がいよいよピンチ。 このへんと ID3v2 タグ、MIDI のあたりは余裕ができたら ゆっくり調べてみようと思います。
bpo 雑記。
音に今一つ合わないのが悔しいです。 もうちょっと勉強した方が良さげです。 よく合うのは、ベースだのドラムだのがでかい曲や、 あと、歌はそれなりに良いみたいです。 速めの弾を多くしたとはいえ、結局弾が届くまでにラグがあるわけで、 今一つリズムに合わんというか。
で、Good Timing と Just Timing っつうボーナスを作りました。 知ってる曲なら音が大きめの音が鳴る時に合わせて 適当な方向を入れるとそれなりにボーナスが入ります。
グラフィック的には全て CPU で処理っつう、 時代の流れに完全に逆行したやりかたでやってます。 clear_screen.cc 書くのはとても楽しかったです。
最後の方に書いたものはだんだん適当になっていきましたが、 わりと納得のいくコードというか、 自分なりのコードの書き方が定着してきた感があります。
pimpl イディオムなんかのおかげであまり依存が無いかんじです。 あと spimpl っていうあやしげなイディオムをひねりだしてみました。 s は static もしくは singleton です。
最後の方に書いたのは UI とかスコア表示とかです。 こういうののプログラムは大嫌いです。
好き勝手に色んなライブラリをつまみ喰いしてます。 boost も欲しくなればすぐに使おうとしているのですが、 filesystem を使うとやたら容量がでかくなってしまって、 断念したのがちょっと残念でした。
それにしてもコンパイルに時間がかかりすぎます…
03.04.08■ [Update]: Bullet Philharmonic Orchestra
音に合わせて弾が飛んでくる、
おたまの二番煎じみたいなの。
mp3, ogg, midi, mod, wav なんかから弾幕生成します。
Windows & SDL_mixer & MIDI で PostMix がヘンなのは ポリシーか仕様かバグか、なんなんだろう…
27弾幕追加。凄い量だね。大原さん17個もサンクスです。 私が二の足踏んでた緋蜂弾幕をタマモクロスさんに再現して頂けました。 BulletML書いてる人間が増えるのは嬉しいですな。 今回は私も6個作りました。えへん。当り前。 0.0.3 とかいうバージョンナンバーのヤツを見つけたんで、 BulletML 移行前の弾幕で面白げな弾幕を復刻しただけですが。
ちなみに、昔の敵行動記述言語の一例。 意味わからんな。
はさむ for 1 1 200 1 rand 3 180 multi 4 0.3 1.5 shotRA 0.3 50 0 0 -0.4 50 shotRA -0.3 50 0 0 0.4 50 wait 30 next
あと、凄くいい加減に算出した難易度情報など。 最近いい加減な拡張ばかりだ。もうちょっとなんとかしないと。
後は、下記参照。
えと、君も議会制の面倒さを体験してみないか?
議会制弾幕回避機関に新人が。 一人はプレイヤー。HumanCpu という矛盾したクラス名。 このボタンを押しながら方向を入力すると議会制弾幕回避機関に 口出しができるようにしてみました。 なんでもっと早くやんなかったのかな。 結構おもしろい。 コンフィグで発言権を大にするとほとんど自分で操作してるけど、 なんか絶対死なないな、ってモード。 発言権中はなんか微妙にままならんぞ、って感じ。 発言権小だと大まかな方向性しか指示できない。
この人手の操作を学習させて… というのが誰もが思いつく夢だろうかと思います。
もう一人は、査察官。 全く決定には関わらんけど、弾幕の評価を下します。 誰も見ていないと思われた右下の覧に、 難易度、弾幕量、速度、自機狙度、特殊度、を追加。 難易度はとてもいい加減。ていうか全体的に凄く適当。
パターン性などの指標を加えたりして、もうちょっといろいろやりたい。 140個を越える弾幕を管理できてるんだから、 色々分析してみんと損なんだよなあ。
03.03.10■ [Update]: boost memo
メモとしての機能アップとラクにメモをとるために、 なんかいい方法を考えてたところ、 SDL Watch::TNG が公開され、 あまりに素晴しいので適当に真似ることに決定。 んで、こうなった。 もともとここで cz-add-diary 使い始めたのは こっちに使いたかったからなんだけど随分遅れたなあ。
現状 local に落ちたメールの番号から勝手にリンクを作ってくれたり、 まとめのページを自動で作ってくれたりしていて結構ラクになった。 静的に作ってるから変更がきかないのがアレだが。
なにかと必要なので関数電卓を作りました。 正気とは思えないデザインと、使いにくいインターフェイスを備えていますが、 ruby にまんま eval させてるだけなので、やろうと思えば何でもできるはず。 式をパースせずに関数電卓が作れるとは、インタープリタは便利だね。
まだまだヘボヘボなんで色々いじろうと思います…
03.03.07Windows向け関連付けツールを添付。 意図はブラウザから bml ファイルをクリックして実行できればええなあ、と。
ぼくは Linux & w3m なので、 run_sdmkun というものを作って、
#!/bin/sh cd ~i/wrk/sdmkun ./sdmkun $@
/etc/mailcap に
application/bulletml; /home/i/bin/run_sdmkun %s
として、 .htaccess に
AddType application/bulletml .bml
と書きました。明らかに間違っている気もする。
そうそう、レジストリの編集の仕方とかよくわかんなかったんで、 K.INABA. さんのソースを参考にしました。謝辞。