Re: 弾幕風バグ・要望スレ (ph)6スレ目 ( No.7 )
日時: 2015/01/12 10:31
名前: gore

更新お疲れ様です。

>>>前89 gore氏
>>色IDから8の倍数で余り算すると、追加したりした分だけ
>>計算対象に減算しないといけなくなって

弾を消した時のエフェクト色(配列定義)を、弾の画像IDから算出しているためです。
現状では定義データから渡せる値は、画像IDと遅延色配列だけな為
弾画像の配置をフォーマットに基づいて連番で置いておく必要があり、計算の手間が生じています(あと重い)
DelayColorの場合だと、どうしてもデフォの遅延光に影響を及ぼしてしまうので
アイテム定義データの『Type』変数のような物を用意してくれると、お手軽になるんじゃないかなあと。

■エフェクト吹き飛びの件(>>2で追記済み)

ある程度ゲームが進んでエフェクトIDを回した時にしかこのバグは起きない為、
メモリ破壊の件は否定できませんが…。
しかし、マイクロスレッドを使用してバグの発生を完全に防げた所を見ると
メモリが破壊されたのが直接の原因ではなさそうです。

実はこのバグ、最初は弾を消した時のユーザアイテムのデフォルト回収移動中に起きたのがきっかけで
ソレをどうにかしようと自前で座標制御タスク組んだら、
今度はエフェクトにも吹き飛び被害が及び始めたという経歴だったりします。

たしかObjMoveで動かすオブジェクトは、
ObjRenderでも座標指定出来た筈なので
誘発原因はもしかしたら、RenderPositionとMovePositionの互換処理かも…?

また、SPRITE_2Dで作っていたエフェクトを
PRIMITIVE_2Dに置き換えても抑制できたので
一度に作れるエフェクトの生成数に上限があるとしたら、あるいは…

いずれにしろ、現状では吹き飛び対策を開発していたゲームに施し終わってしまったため
バグを再現できるScriptが手元にありません

今年もまだまだ開発作業はするつもりなので、その時になったら
最低限バグが発生するスクリプト単位にまとめてお渡しします。