Closed Marco3jp closed 2 years ago
z = x - y; z > 180 ? z - 180 : z
でいけるhttps://twitter.com/Marco_utau/status/1515017015849005057
このスレッドに当たり判定と反射のメモをした
まずはミニマムにしたいので、1tick内に
を順番に叩くだけにしよう なので1と2と3をもとに、進んだ距離を調整するとかは一旦しない
あ〜〜〜でもこうなると、CollisionCheckerって名前がだんだん適さなくなってきたな 物理処理全般見る形になっている気がする
ただ、CheckerがないとTickerにベタ書きするしかなくなっちゃうんだよな 当たり判定は別に反射に依存するものではないし、当たった場所の検索も反射に依存するものではない でも当たった場所の検索は当たり判定に依存する 反射の計算は当たり判定、当たった場所に厳密には依存しないはず → これはどう分離するか次第で、ある直線に対する反射計算に落とし込むなら独立できる。となると曲線に対して接線を引くサービスが別で必要になりそう
でも当たった場所の検索は当たり判定に依存する
これどうなんだろ、当たり判定のロジックにもよるけど、当たった直線、曲線をグラフとして抽出してこれるなら当たり判定のロジックとは切り離して単なる式に落とし込めるような気もする……?
反射ロジックをサービスに切り出せたので、あとは衝突面の直線を出すサービスがほしい気はする なぜか衝突時に明後日の座標に飛んでいってしまう(そこで動いている角度は正しそう)ので、座標系と角度、移動サービス周りの関係性を整理して壁を作っても大丈夫にしたい
衝突したことを判断することとか、反射角を算出することは比較的汎用なのかな〜と考えていたんだけど、後者はともかく前者はオブジェクト自身が持っていてよかったのではと思ったりしている
ここから作るもの
壁作って反射させることができたので一旦Done