これって例えば「キャラがジャンプしたときに地面にめり込まないようにする」など多くのゲームで必要になるテクニックです。 具体的なプログラムはあえて書きませんが、方法としては下記の2つのものが多く使われていると思います。 (1)重なる前に止める (2)重なった後で座標を補正する (1)は当たり判定を見た目より大きくしたり計算によって衝突時の座標を求めたりして上手く重ならないようにすれば良いです。 (2)は重なった後で重なり具合を見てその分だけ位置をずらせばOKです。これだと一瞬重なったように見えるのではないかと思うかもしれないですが画面表示は1秒間に約60回(1フレームごと)にしか行わないため表示更新前に座標を動かせば問題ありません。 これらは一例にすぎず方法はたくさんあります。「これは正しくあれは間違っている」ということはなく自分が思ったように動けばどれもが正解です。