UnmappedIsland ソースリファレンス - v0.1.0
    検索インデックスを準備しています...

    クラス LaneHaze

    レーンを陽炎でゆがませる(ScreenLayout.md 7.5節 空の演出)。

    Phaserのフィルタは掛けた表示物の中だけを歪ませるので、地面とカードには別々に掛けることになる。 掛ける相手ごとに変位マップの写り方が変わると両者が別の周期で揺れてしまうため、どの表示物でも フィルタがレーンの矩形を写すように据える(focusOn)。

    インデックス
    applied: { filter: Displacement; rect: Rect; target: HazeTarget }[] = []

    掛けたフィルタ。外すときに掛ける前からあったフィルタ(子ウィンドウの切り抜き)を巻き込まないため だけでなく、面ごとに違う矩形へ据え直す(focusOn)ためにも、対象と矩形を組で覚える。

    haze: HeatHaze | undefined
    refocusing: boolean = false

    据え直しを繋いだかどうか(focusOn参照)。

    scene: Scene
    surfaces: readonly HazeSurface[] = []
    tweens: Tween[] = []
    • 変位マップを作る(1度だけ)。緑(縦の変位)を波打たせ、赤(横の変位)は控えめにする。 各成分は、それが動かす向きの縁(縦なら上下、横なら左右)で0へ落とす(EDGE_FADE参照)。

      戻り値 string | undefined

    • フィルタが写す範囲をレーンの矩形へ据え直す。

      対象の位置を矩形の中での位置として渡すと、フィルタのカメラはその矩形を写す。ただしPhaserは 「対象の今の位置」から写した結果を戻す先を決めるので、動く対象では毎フレーム据え直す 必要がある。据え置くと、カードが送られた量だけ戻す先までずれて、二重に動いて見える。

      戻り値 void

    • 掛ける面。フィールドエリアを作り直すとレーンごと入れ替わるので、その都度渡し直す。

      パラメータ

      戻り値 void

    • 掛けたフィルタとゆらぎを外す(対象そのものは破棄しない)。

      戻り値 void