Пример #1
0
        private static void CheckCollision(GameTime gameTime)
        {
            if (testActor != null)
            {
                testActor.Update();
            }

            if (player != null && exit != null) // I guess we are save now ^-^
            {
                exit.Update(gameTime);


                if (exit.TileBoundingBox.Intersects(player.TileBoundingBox) && !exit.rigidbody.IsDisposed)
                {
                    exit.rigidbody.Dispose();
                    levelDone = true;
                    sn_level_exit.Play();
                }
            }


            for (int i = mapEnemies.Count - 1; i >= 0; i--)
            {
                mapEnemies[i].Update(gameTime);

                if (mapEnemies[i].Bite && mapEnemies[i] != null)
                {
                    if (player != null)
                    {
                        player.ReceiveDamage();
                    }
                }
            }

            for (int i = mapEnemies.Count - 1; i >= 0; i--)
            {
                if (mapEnemies[i].IsKilled && mapEnemies[i] != null)
                {
                    mapEnemies[i].rigidbody.Dispose();
                    //        mapEnemies.RemoveAt(i);
                }
            }

            for (int i = mapCoins.Count - 1; i >= 0; i--)
            {
                mapCoins[i].Update(gameTime);

                if (player != null)
                {
                    if (mapCoins[i].TileBoundingBox.Intersects(player.TileBoundingBox))
                    {
                        coins += 1;
                        sn_coin.Play();
                        mapCoins[i].rigidbody.Dispose();
                        mapCoins.RemoveAt(i);
                    }
                }
            }
        }