Mainu Studio
Banana Game開発ノート | フルーツらしい物理を作る
衝突の形、自動合体、縦長の画面。盤面を支える3つの実装を紹介します。すべての端末や状況で不具合がないと保証するものではありません。
円だけでは表せなかった形
円形の衝突判定は軽く、転がり方も予測しやすいものです。しかしバナナ全体を円で囲むと内側の空間までふさがり、ほかの実が浮いて見えます。小さな円では先端を通り抜けます。
バナナには内側の空間が残る、曲がりに沿った形を使います。ブドウも同様に見た目の接触を説明できる輪郭が必要です。ただし全ピクセルをなぞると小さな角が引っかかりや振動を増やすため、形の特徴を保ちつつ細部を整理しています。

同じフルーツを二度合体させない
合体が決まったフルーツは、新しいフルーツを追加する前に使用済みとして扱います。別の接触判定で再び数えられるのを防ぐためです。得点と揺らすための報酬も同じ合体に結び付け、演出で二重に加算されないようにしています。
720×1280を共通の基準に
Web、Android、Windowsは画面の余白、安全領域、フィルター、入力が異なります。個別に配置を決めると、ある環境だけボタンがずれたり伸びたりしました。
現在は720×1280の基準配置を縦横比を保って拡大縮小し、余白を盤面の外に置きます。タッチ範囲を大きくしても中心は同じ座標に固定。文字や次の実も共通の倍率に従います。最近傍補間は整数倍率では鮮明ですが、ほとんどの携帯画面は整数倍ではないため、相対配置を優先し素材ごとにフィルターを選びます。
