public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.goombaList.Count; ++i)
            {
                if (Game.goombaList[i].ShouldUpdate)
                {
                    for (int j = 0; j < Game.blocks.Count; ++j)
                    {
                        if (!Game.goombaList.ElementAt(i).ShouldCollide)
                        {
                            continue;
                        }
                        side = CollisionDetector.detectCollision(Game.goombaList[i], Game.blocks[j]);
                        if (!(side is NullCollision))
                        {
                            ICollisionHandler GoombaBlock = new GoombaBlockCollisionHandler(
                                side, Game.goombaList[i], Game);
                            GoombaBlock.handleCollision();
                        }
                    }
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.goombaList.Count; ++i)
            {
                if (Game.goombaList[i].ShouldUpdate)
                {
                    // GoombaGoombaCollision
                    for (int j = i + 1; j < Game.goombaList.Count; ++j)
                    {
                        if (!Game.goombaList.ElementAt(i).ShouldCollide ||
                            !Game.goombaList.ElementAt(j).ShouldCollide)
                        {
                            continue;
                        }
                        side = CollisionDetector.detectCollision(Game.goombaList[i], Game.goombaList[j]);
                        if (!(side is NullCollision))
                        {
                            ICollisionHandler GoombaGoomba = new GoombaGoombaCollisionHandler(side);
                            GoombaGoomba.handleCollision();
                        }
                    }
                    // GoombaKoopaCollision
                    for (int k = 0; k < Game.koopaList.Count; ++k)
                    {
                        if (!Game.koopaList[k].shouldCollide)
                        {
                            continue;
                        }
                        side = CollisionDetector.detectCollision(Game.goombaList[i], Game.koopaList[k]);
                        if (!(side is NullCollision))
                        {
                            ICollisionHandler GoombaKoopa = new KoopaGoombaCollisionHandler(side, Game);
                            GoombaKoopa.handleCollision();
                        }
                    }
                }
            }
            for (int k = 0; k < Game.koopaList.Count; ++k)
            {
                if (Game.koopaList[k].ShouldUpdate)
                {
                    // KoopaKoopaCollision
                    for (int l = k + 1; l < Game.koopaList.Count; ++l)
                    {
                        if (!Game.koopaList[k].shouldCollide || !Game.koopaList[l].shouldCollide)
                        {
                            continue;
                        }
                        side = CollisionDetector.detectCollision(Game.koopaList[k], Game.koopaList[l]);
                        if (!(side is NullCollision))
                        {
                            ICollisionHandler KoopaKoopa = new KoopaKoopaCollisionHandler(side, Game);
                            KoopaKoopa.handleCollision();
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.bowserList.Count; ++i)
            {
                for (int j = 0; j < Game.blocks.Count; ++j)
                {
                    side = CollisionDetector.detectCollision(Game.bowserList[i], Game.blocks[j]);
                    if (!(side is NullCollision))
                    {
                        ICollisionHandler BowserBlock = new BowserBlockCollisionHandler(Game.bowserList[i]);
                        BowserBlock.handleCollision();
                    }
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.items.Count; ++i)
            {
                for (int k = 0; k < Game.objects.Count; ++k)
                {
                    side = CollisionDetector.detectCollision(Game.items[i], Game.objects[k]);
                    if (!(side is NullCollision) && (Game.objects[k] is SmallPipe || Game.objects[k] is MedPipe || Game.objects[k] is TallPipe))
                    {
                        ICollisionHandler itemPipe = new ItemPipeCollisionHandler(side);
                        itemPipe.handleCollision();
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public void findCollision()
        {
            ICollision side = new NullCollision();

            foreach (PiranaPlant minion in Game.piranaPlantList)
            {
                if (!Game.Mario.ShouldCollide)
                {
                    break;
                }
                side = CollisionDetector.detectCollision(Game.Mario, minion);
                if (!(side is NullCollision))
                {
                    ICollisionHandler MarioPirana = new MarioPiranaCollisionHandler(side, Game);
                    MarioPirana.handleCollision();
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.objects.Count; ++i)
            {
                if (!Game.Mario.ShouldCollide)
                {
                    break;
                }
                side = CollisionDetector.detectCollision(Game.Mario, Game.objects[i]);
                if (!(side is NullCollision) && !(Game.objects[i] is FlagPole) && !(Game.objects[i] is Fireball) &&
                    !(Game.objects[i] is BowserFire) && !(Game.objects[i] is Axe))
                {
                    ICollisionHandler MarioObject = new MarioObjectCollisionHandler(side, Game);
                    MarioObject.handleCollision();
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.piranaPlantList.Count; i++)
            {
                if (Game.piranaPlantList[i].ShouldUpdate)
                {
                    for (int j = 0; j < Game.objects.Count; j++)
                    {
                        side = CollisionDetector.detectCollision(Game.piranaPlantList[i], Game.objects[j]);
                        if (!(side is NullCollision) && (Game.objects[j] is Fireball))
                        {
                            ICollisionHandler PiranaObject = new PiranaObjectCollisionHandler(side, Game.piranaPlantList[i], Game);
                            PiranaObject.handleCollision();
                        }
                    }
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.objects.Count; ++i)
            {
                if (Game.objects[i].ShouldUpdate)
                {
                    for (int j = 0; j < Game.blocks.Count; ++j)
                    {
                        side = CollisionDetector.detectCollision(Game.objects[i], Game.blocks[j]);
                        if (!(side is NullCollision) && !(Game.blocks[j].State is HiddenBlockState))
                        {
                            ICollisionHandler ObjectBlock = new ObjectBlockCollisionHandler(side);
                            ObjectBlock.handleCollision();
                            //j = Game.blocks.Count;
                        }
                    }
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.blocks.Count; ++i)
            {
                if (!Game.Mario.ShouldCollide)
                {
                    break;
                }
                if (Game.blocks[i].ShouldUpdate)
                {
                    side = CollisionDetector.detectCollision(Game.Mario, Game.blocks[i]);
                    if (!(side is NullCollision))
                    {
                        ICollisionHandler MarioBlock = new MarioBlockCollisionHandler(side, Game);
                        MarioBlock.handleCollision();
                    }
                }
            }
        }
Ejemplo n.º 10
0
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.items.Count; ++i)
            {
                if (!Game.Mario.ShouldCollide)
                {
                    break;
                }
                if (Game.items[i].IsCollidable)
                {
                    side = CollisionDetector.detectCollision(Game.Mario, Game.items[i]);
                    if (!(side is NullCollision))
                    {
                        ICollisionHandler MarioItem = new MarioItemCollisionHandler(side, Game);
                        MarioItem.handleCollision();
                    }
                }
            }
        }
Ejemplo n.º 11
0
        public static ICollision detectCollision(IGameObject obj1, IGameObject obj2)
        {
            ICollision side  = new NullCollision();
            Rectangle  rect1 = obj1.DestinationRectangle;
            Rectangle  rect2 = obj2.DestinationRectangle;

            if (rect1.Intersects(rect2))
            {
                Rectangle intersection = Rectangle.Intersect(rect1, rect2);
                if (intersection.Width > MinIntersectionSize || intersection.Height > MinIntersectionSize)
                {
                    if (intersection.Width >= intersection.Height && rect1.Top <= rect2.Center.Y)
                    {
                        side               = new Top(intersection);
                        side.TopOrLeft     = obj1;
                        side.BottomOrRight = obj2;
                    }
                    else if (intersection.Width >= intersection.Height && rect1.Bottom > rect2.Center.Y)
                    {
                        side               = new Bottom(intersection);
                        side.TopOrLeft     = obj2;
                        side.BottomOrRight = obj1;
                    }
                    else if (intersection.Width < intersection.Height && rect1.Center.X >= rect2.Center.X)
                    {
                        side               = new Right(intersection);
                        side.TopOrLeft     = obj2;
                        side.BottomOrRight = obj1;
                    }
                    else if (intersection.Width < intersection.Height && rect1.Center.X < rect2.Center.X)
                    {
                        side               = new Left(intersection);
                        side.TopOrLeft     = obj1;
                        side.BottomOrRight = obj2;
                    }
                }
            }
            return(side);
        }
Ejemplo n.º 12
0
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.objects.Count; i++)
            {
                for (int j = 0; j < Game.objects.Count; j++)
                {
                    if (Game.objects[i].Equals(Game.objects[j]))
                    {
                        continue;
                    }
                    side = CollisionDetector.detectCollision(Game.objects[i], Game.objects[j]);
                    if (!(side is NullCollision) && !(Game.objects[j] is Fireball))
                    {
                        ICollisionHandler ObjectPipe = new ObjectPipeCollisionHandler(side);
                        ObjectPipe.handleCollision();
                        //j = Game.objects.Count;
                    }
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.koopaList.Count; ++i)
            {
                if (!Game.Mario.ShouldCollide)
                {
                    break;
                }
                if (!Game.koopaList[i].shouldCollide)
                {
                    continue;
                }
                side = CollisionDetector.detectCollision(Game.Mario, Game.koopaList[i]);
                if (!(side is NullCollision))
                {
                    ICollisionHandler MarioKoopa = new MarioKoopaCollisionHandler(side, Game);
                    MarioKoopa.handleCollision();
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            foreach (Goomba minion in Game.goombaList)
            {
                if (!minion.ShouldCollide)
                {
                    continue;
                }
                if (!Game.Mario.ShouldCollide)
                {
                    break;
                }
                side = CollisionDetector.detectCollision(Game.Mario, minion);
                if (!(side is NullCollision))
                {
                    ICollisionHandler MarioGoomba = new MarioGoombaCollisionHandler(side, Game);
                    MarioGoomba.handleCollision();
                }
            }
        }
Ejemplo n.º 15
0
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.items.Count; i++)
            {
                if (Game.items[i].ShouldUpdate)
                {
                    if (Game.items[i].IsCollidable)
                    {
                        for (int k = 0; k < Game.blocks.Count; k++)
                        {
                            side = CollisionDetector.detectCollision(Game.items[i], Game.blocks[k]);
                            if (!(side is NullCollision))
                            {
                                ICollisionHandler itemBlock = new ItemBlockCollisionHandler(side);
                                itemBlock.handleCollision();
                            }
                        }
                    }
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.koopaList.Count; i++)
            {
                if (Game.koopaList[i].ShouldUpdate)
                {
                    if (!Game.koopaList[i].shouldCollide)
                    {
                        continue;
                    }
                    for (int j = 0; j < Game.objects.Count; j++)
                    {
                        side = CollisionDetector.detectCollision(Game.koopaList[i], Game.objects[j]);
                        if (!(side is NullCollision) && !(Game.objects[j] is FlagPole))
                        {
                            ICollisionHandler KoopaObject = new KoopaObjectCollisionHandler(side, Game.koopaList[i], Game);
                            KoopaObject.handleCollision();
                        }
                    }
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.koopaList.Count; ++i)
            {
                if (Game.koopaList[i].ShouldUpdate)
                {
                    if (!Game.koopaList[i].shouldCollide)
                    {
                        continue;
                    }
                    for (int j = 0; j < Game.blocks.Count; ++j)
                    {
                        side = CollisionDetector.detectCollision(Game.koopaList[i], Game.blocks[j]);
                        if (!(side is NullCollision))
                        {
                            ICollisionHandler KoopaBlock = new KoopaBlockCollisionHandler(side, Game.koopaList[i], Game);
                            KoopaBlock.handleCollision();
                        }
                    }
                }
            }
        }
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.goombaList.Count; i++)
            {
                if (Game.goombaList[i].ShouldUpdate)
                {
                    for (int j = 0; j < Game.objects.Count; j++)
                    {
                        if (!Game.goombaList.ElementAt(i).ShouldCollide)
                        {
                            continue;
                        }
                        side = CollisionDetector.detectCollision(Game.goombaList[i], Game.objects[j]);
                        if (!(side is NullCollision) && !(Game.objects[j] is FlagPole))
                        {
                            ICollisionHandler GoombaObject = new GoombaObjectCollisionHandler(side, Game.goombaList[i], Game);
                            GoombaObject.handleCollision();
                        }
                    }
                }
            }
        }
Ejemplo n.º 19
0
        public void findCollision()
        {
            ICollision side = new NullCollision();

            for (int i = 0; i < Game.goombaList.Count; ++i)
            {
                side = CollisionDetector.detectCollision(Game.MainCameraObject, Game.goombaList[i]);
                if (!(side is NullCollision))
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
                else
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateNullCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
            }
            for (int i = 0; i < Game.koopaList.Count; ++i)
            {
                side = CollisionDetector.detectCollision(Game.MainCameraObject, Game.koopaList[i]);
                if (!(side is NullCollision))
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
                else
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateNullCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
            }
            for (int i = 0; i < Game.piranaPlantList.Count; ++i)
            {
                side = CollisionDetector.detectCollision(Game.MainCameraObject, Game.piranaPlantList[i]);
                if (!(side is NullCollision))
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
                else
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateNullCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
            }
            for (int i = 0; i < Game.items.Count; ++i)
            {
                side = CollisionDetector.detectCollision(Game.MainCameraObject, Game.items[i]);
                if (!(side is NullCollision))
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
            }
            for (int i = 0; i < Game.blocks.Count; ++i)
            {
                side = CollisionDetector.detectCollision(Game.MainCameraObject, Game.blocks[i]);
                if (!(side is NullCollision))
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
                else
                {
                    ICollisionHandler cameraUpdate = new CameraUpdateNullCollisionHandler(side);
                    cameraUpdate.handleCollision();
                }
            }
        }