ページ 1 / 1
【解決済み】重なったイベントがちらつく
Posted: 2021年2月15日(月) 23:55
by しぐれん
Spriteset_Mapに新規のスプライトを追加しましたが、これがあるとイベントがちらつきます。
フォロワーの座標が重なった場合・プライオリティを通常キャラの下に設定したイベントと重なった場合でちらつきます。
同様の現象に遭遇した方はいませんでしょうか?
MVでのみ発生し、MZ環境で同じプラグインを動かした際は問題は発生しませんでした。
表示内容を見る限り、同じ座標にあるイベント同士が前に出ようと奪い合っているように見えました。
Re: 重なったイベントがちらつく
Posted: 2021年2月16日(火) 01:06
by トリアコンタン
こんにちは!
こちらで再現確認を試してみたのですが、近い挙動にはなりましたが、正確な現象は再現できませんでした。
(こちらでは「追加したスプライト」と「既存のイベント」とがちらつく現象が発生しました)
なので、以下の話はある程度の推測を含みます。ご報告の事象に該当するかどうかは分かりません。
コアスクリプトではTilemap配下のスプライトに対して毎フレームソートしています。
ソートには以下の比較関数が与えられます。
コード: 全て選択
Tilemap.prototype._compareChildOrder = function(a, b) {
if (a.z !== b.z) {
return a.z - b.z;
} else if (a.y !== b.y) {
return a.y - b.y;
} else {
return a.spriteId - b.spriteId;
}
};
この比較関数の中にNaNを返すケースがあると、実行環境によってはソート結果が不確定になる場合があります。
例えば、zというプロパティを持たないスプライトをTilemapの子要素として追加すると「a.z - b.z」が「NaN」を返します。
もしスプライトをTilemapに追加していて、かつzプロパティを設定していない場合、設定することでちらつきが解消される可能性があります。
その場合、MZでは再現しないのは、MZのChromiumのバージョンがより新しいからかもしれません。
【解決済み】Re: 重なったイベントがちらつく
Posted: 2021年2月16日(火) 10:44
by しぐれん
Zの追加を試してみたところ、ちらつきは発生しなくなりました。
ありがとうございます。