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

    クラス CardTable

    場に出ているカードの実体すべて(CardInteraction.md 6節 カードの移動アニメーション)。

    どの札がどこからどこへ飛ぶのかの解釈は計画(cardMotionPlan)が行う。このクラスは実体の札を 所有し、レーンの枠に置き(CardLane.reconcile)、枠の外に在る間は自前の層(SCREEN_DEPTH.flyingCard)で 目標へ向かわせる。

    飛ぶのは常に実体の札そのもので、運んでいるインスタンス(ID)を載せている。枠の札は自分に 在るIDの集合を知っていて(Card.setPresence)、枚数はそこからの導出値。便が着くとIDセットが 合流する(Card.absorbReturnedIds)——分身と枚数の台帳は持たない。

    飛んでいる途中に世界が変わったら、便は着かされるのではなく向き直る(plan.landings)。 差し替えと便の開始に順序の契約は無い。

    自前の層に置くのは、レーンからはみ出したカードは隣接エリアの背景板に隠れる設計 (CardLane参照)のため、レーンの中に置いたままでは境界をまたげないから。

    インデックス
    dust: DustPuff
    flights: Flight[] = []
    freed: FreedCard[] = []
    layer: Container
    lunges: Lunge[] = []
    metrics: ScreenMetrics
    scene: Scene
    tracked: Map<Flight, () => Rect> = ...

    目標が動き続ける便の、目標の引き直し先。

    • 便を打ち切って札を消す(着いた扱いにはしない)。

      パラメータ

      • flight: Flight

      戻り値 void

    • 指が離した札を、枠の外の自由な札として引き取る(CarriedCard.release)。

      パラメータ

      • card: Card
      • ids: readonly number[]
      • source: Card | undefined

      戻り値 void

    • 突進を1つ始める。飛ぶのは実体の札の複製で、元の枠の札は突進の間その個体を名乗らない (plan.shown)。突き当たられる相手の札は、レーンから外された姿のまま枠の外へ引き取って、 着くまでその場に出しておく。

      パラメータ

      戻り値 void

    • 落とした札を、経過を見せ切るまで離した場所に置いたままにする(時間のかかるcombination。 使っている道具はそこに在る)。運ぶインスタンスはここで確定する(掴んだ時点の見込みと、実際に 世界が動かす個体は違いうる——combinationは束の2つ目を使う)。

      パラメータ

      • released: { followers: readonly number[]; grabbed: number; rect: Rect }

      戻り値 void

    • 枠の外に出している札をすべて片付ける。画面を作り直すときは、レーンごと捨てられる前にここを通す。

      戻り値 void

    • 突進を終わらせる(帰り着いた枠の札へ合流する)。突き当たる前に打ち切ったなら、相手の消滅は その場で見せる——見せ損ねると、札だけが黙って消える。

      パラメータ

      • lunge: Lunge
      • arrived: boolean

      戻り値 void

    • 札を1枚、今いる場所から目標へ飛ばす(CarriedCard用)。目標は毎フレーム引き直すので、 指のように動き続ける先へも向かえる。着いたらonArriveを呼んで消える。

      枠から枠への移動にこれを使ってはいけない。 レーンに並ぶ札の運びは、並びの差し替えが そのまま見せる(update)。

      パラメータ

      • card: Card
      • target: () => Rect
      • onArrive: () => void

      戻り値 FlightHandle

    • 1つの便を終わらせる(着いた枠の札へ合流し、実体は行き先の札に引き継ぐ)。

      パラメータ

      • flight: Flight

      戻り値 void

    • 差し替えの結果に合わせて、宙に在る札の行き先を引き直す。

      パラメータ

      • flights: readonly Flight[]
      • landings: ReadonlyMap<number, { into: Card; to: Rect }>
      • context: MotionContext

      戻り値 void

    • 置いたままの札を、飛ばさずに元の枠へ返す(実行しないと決めた操作の後始末)。

      戻り値 void

    • 毎フレーム、飛んでいる札を目標へ進める。目標が動いていれば追いかける(指・スクロール中の枠)。

      パラメータ

      • _time: number
      • delta: number

      戻り値 void

    • 突進を1コマ進める。行きの脚が着いた時点が「突き当たった」瞬間で、そこで相手の札を片付けて 砂埃を立て、向きを返す。帰りの脚が着けば元の枠へ合流する。

      パラメータ

      • lunge: Lunge
      • delta: number

      戻り値 void