DistanceBasedCollision (日本語)

衝突検出を行うための別の方法です。この種類は完全に円弧にて動作します。 別方向にある単体オブジェクトの距離がそれらの合計未満かどうかを確認します (複数の半径)。

変数定義 : ax, ay = circleA の座標。 bx, by = circleB の座標。 ar, br = それぞれ CircleA および circleB の円弧

function checkCircularCollision(ax, ay, bx, by, ar, br)
	local dx = bx - ax
	local dy = by - ay
	local dist = math.sqrt(dx * dx + dy * dy)
	return dist < ar + br
end

余計な平方根関数は不要ですか? この他の関数を試してみてください

function checkCircularCollision(ax, ay, bx, by, ar, br)
	local dx = bx - ax
	local dy = by - ay
	return dx^2 + dy^2 < (ar + br)^2
end

距離にて処理を行われることがわかっている sqrt 関数を保持します。

寄贈者


そのほかの言語