ここで、プログラムのエラーを把握するのに非常に苦労しています。
私のコードは2
四角形でのみ機能しますが、四角形の数を増やすとまったく機能しません。
私のプログラムは次のように流れます:
pseudo code
for (i = 0 to N_of_rectangles - 1)
{
Rectangle& r1 = rect[i];
if (r1.is_grab_by_mouse())
{
for (j = 0 to N_of_rectanges - 1)
{
if (i == j)
{
skip_this_loop //skip for any self-checking
}
Rectangle& r2 = rect[j];
if (not Rectangle.collide(r1, r2))
{
if (r1.restricken_move()) break; //restricken move will be true if
//*this rect will collide to !*this
if (r1.movement == HORIZONTAL)
r1.move_x_along_with_mouse()
else //VERTICAL
r1.move_y_along_with_mouse()
}
else
{
r1.resolve_collision()
}
}
}
}
私はグーグルと私のもので検索した長方形の衝突検出のためのすべてのアルゴリズムを試しましたが、logic flaw
ここにあるようです。
(PS。私のrec-collision検出は、回転した長方形用ではありません)