XNA Collision Detection
Hej Eksperter,Jeg sidder her med noget XNA collision detection, og jeg føler efterhånden jeg har prøvet alt, men kan ikke få det til at virke.
Har også kigget på en række guider efterhånden, men desværre ikke nogen der har virket.
Håber der er nogen der kan se hvad jeg gør forkert, for er virkelig ved at give op her:
//Koden siger lidt sig selv, men skriv venligst hvis der er noget der ikke giver mening.
private void noTouchy()
{
foreach (BlueBlock blueBlock in blueBlocks)
{
foreach (Nifty nifty in niftys)
{
Boolean touching = detectCollision(blueBlock.blueBlockX, blueBlock.blueBlockY, blueBlock.blueBlockW, blueBlock.blueBlockH, nifty.niftyX, nifty.niftyY, nifty.niftyW, nifty.niftyH);
if (touching == true)
{
nifty.position = new Vector2(0, 408);
}
}
}
}
private Boolean detectCollision(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2)
{
Rectangle r1 = new Rectangle(x1, y1, w1, h1);
Rectangle r2 = new Rectangle(x2, y2, w2, h2);
int top = Math.Max(r1.Top, r2.Top);
int bottom = Math.Min(r1.Bottom, r2.Bottom);
int left = Math.Max(r1.Left, r2.Left);
int right = Math.Min(r1.Right, r2.Right);
if (top == bottom || left == right)
{
return false;
}
return true;
}