0
SharpDx.Toolkit (XNA) 게임을 쓰고 있습니다. 나는 어떻게 충돌 감지를 프로그래밍하는 인터넷에서 검색하고, 나는이를 발견했습니다회전 된 스프라이트로 충돌 감지 SharpDX
static bool perPixel(Rectangle rectangleA, Color[] dataA, Rectangle rectangleB, Color[] dataB)
{
// Find the bounds of the rectangle intersection
int top = Math.Max(rectangleA.Top, rectangleB.Top);
int bottom = Math.Min(rectangleA.Bottom, rectangleB.Bottom);
int left = Math.Max(rectangleA.Left, rectangleB.Left);
int right = Math.Min(rectangleA.Right, rectangleB.Right);
// Check every point within the intersection bounds
for (
int y = top; y < bottom; y++)
{
for (int x = left; x < right; x++)
{
if (dataA[(x - rectangleA.Left) + (y - rectangleA.Top) * rectangleA.Width] != new Color(0, 0, 0, 0) && dataB[(x - rectangleB.Left) + (y - rectangleB.Top) * rectangleB.Width] != new Color(0, 0, 0, 0))
{
// Get the color of both pixels at this point
Color colorA = dataA[(x - rectangleA.Left) +
(y - rectangleA.Top) * rectangleA.Width];
Color colorB = dataB[x - rectangleB.Left) +
(y - rectangleB.Top) * rectangleB.Width];
// If both pixels are not completely transparent,
if (colorA.A != 0 && colorB.A != 0)
{
// then an intersection has been found
return true;
}
}
}
}
// No intersection found
return false;
}
이 코드는 잘 작동하지만 비 회전 스프라이트에. 그래서 매트릭스 변환을 추가하려고했지만 작동하지 않습니다.
아무에게도 아이디어가 있습니까, 어떻게해야합니까?
는 기독교EDIT 감사 :이 게임은 2D 게임입니다.
픽셀 충돌 당 실제로 필요합니까? –