Avatar billede xsix Nybegynder
01. november 2011 - 15:27 Der er 2 kommentarer og
1 løsning

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;
        }
Avatar billede xsix Nybegynder
01. november 2011 - 15:29 #1
Hov, det sidste "if statement" var oprindeligt sådan her:

if (top >= bottom || left >= right)

Lavede det bare == som en test.
Avatar billede Slettet bruger
04. november 2011 - 09:25 #2
Kender du evt Farseer Physics? (http://farseerphysics.codeplex.com/)

Fantastisk 2D fysik motor.
Avatar billede xsix Nybegynder
15. januar 2012 - 14:55 #3
Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester