タイルとエンティティを使用して、Terraria(C#のXNA 4.0を使用)に似たゲームを作成しています。NPCなどが現在の速度でタイルと衝突するかどうかを(軸に揃えられた境界ボックスを使用して)計算する関数を作成しました。
軸に揃えられた長方形が最初にタイルに当たったときの位置を計算する関数が必要な場合(タイルは2次元配列に格納され、各タイルの長さは1単位、タイルの半分は0.5など)、基本的には次のようになります。長方形が現在ある場所からタイルに当たるまで移動し、位置を返します。(フレームレートを上げるには、より効率的な処理が必要です)。
オブジェクトが現在の速度で衝突しても動かないように作ってみました。ただし、オブジェクトが高速で移動している場合は、衝突の可能性がなくなる前にオブジェクトが停止します。とにかく、オブジェクトをバウンドさせるためなど(および壁を通過できないようにするためなど)に長方形が最初に衝突した場所に関する情報が必要です。
この質問はかなり具体的であり、何かを明確にする必要がある場合は教えてください。