白い弾幕くん 1.5.7

アナウンスとリリースの時間的ずれっぷりが凄いですが。というのは基本的にこれ以上コードいじるのはやめたいな、と漠然と思っていたからもうちょっとエラーチェックしたかったのですがバレたようなのでもういいやめんどい。ああそうか bullets.zip も書き変えなきゃなのか。

Pentanさんからいろいろとバグ報告を頂いてとてもありがたかったです。

set は中心 get は左上…

修正しました。この変更により Lua での getX, getY, getPlayerX, getPlayerY は以前よりも 4 だけ少ない値を返すようになります。結構大変でしたが既存の弾幕も問題が出そうなものはいじりました、が、挙動が変化してしまって問題があるものもあるかもしれません。あれば連絡頂ければ幸いです。

absolute および relative で軌道を変えると直前に撃った弾の方向が変えた軌道の方向
になる。
備考:このファイルの挙動参照。
 bulletmlrunnerimpl.cpp の runChangeDirection でsequence 以外では getDirection
を呼んでいるため66行目の prevDir =dir で変わってしまっている。

ごもっとも。修正しました。

repeatのtimesに1より小さい値を設定しても1回実行される。
備考:そういう仕様だといわれればそれまでなんですけど。

実装面倒なんで仕様ということで我慢して下さい。 repeat 0 があれば if が作れるわけですけどね…

Luaのfire(speedX, speedY, func, id)のidに-1を渡すと、func(id)で受け取る時にidがnilになる。
備考:command_lua.cc で id_==-1 を引数が無いフラグとして使っているため。

これも仕様ですすいません。どこかに書いた記憶があったのですが気のせいでした。

起動後即座に終了することがある。
備考:一瞬タイトルが出て即座に終了する様子はちょっと笑えます(笑)
 game.cc で end_ と quit_ が初期化されていないため。コンストラクタとかinitあたりで初期化すれば問題無し。
 C++の詳しい仕様はよく知りませんが、起動のたびに適当な値が入ってしまうのはAppleコンパイラの仕様かも?

未初期化のメモリに 0 以外が入っているのは当り前なので、 C++ の規格から考えるともちろん問題です。常々 warning 出して欲しいと思っています。少し前に MacOSX 版を作った時に気付いたので、あのタイミングで修正しました。

ノーマルやシンプルモードで真ん中に戻ってこないことがある。
備考:詳しくは不明ですが前のファイルのchangeDirection や changeSpeed が残ってい
るっぽい?
 前のbmlの終了後に(加)速度の初期化がうまくいっていない?
 例:[G-Wange]_roll_gara.xml

さすがにリプレイの互換性とかどうでも良い頃ですのでいいかげん修正します。

README.bulletml で例の項がことごとく Exapmle になっている。
備考:火星語

ごもっとも。 ABA さんいつのまにか修正されておられるのね…

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h