質問: col.getMax().y; setMinValue(p); } //////////////////////////////////////////////////////////////////////////////////////// } } else { //交差していない setCol(false); setColTag(Tag::Invalid); col.setColTag(Tag::Invalid); } } ```
回答: 例えば, > > pos.y = col.getMin().y - size.y; > > > には,「補正」される側の補正前の座標だとか移動速度だとかいう要素が一切含まれていないように見受けます. `col.getMin().y` と `size.y` が一定の値である(意味的に定数と呼んでよい)場合,この結果もまた一定の値です. どっち側からどのあたりにどう当たったとしても常に同じ座標に「補正」されるということです. これがあなたの意図した処理なのでしょうか? > > どうすればいいのでしょうか? > > > まず,**物事をまともに考えることから始めるべきに思えます**. 1. 「補正」の結果とはどうなるべきなのか? を定める 2. 上記1.を達成するための演算内容を考える. 3. 上記2.で考えた演算内容が妥当か否か(すなわち,1.の結果を生じるか否か)を,まともに検算する. 以上の事柄を実装作業よりも前に行うことです. 3.を十分に行い**「この内容で確実にいける」となってから,その内容を実装します**.