Ejemplo n.º 1
0
        public static bool CheckCollision(Player p, Enemy e, DimensionalManager dm)
        {
            int activeDimensions = dm.GetNumberOfActiveDimensions();

            Position playerPostion = p.getPosition();
            Position enemyPosition = e.GetPosition();

            float playerWidth = p.getRadius();
            float enemyRadius = e.GetWidth();

            float totalDistance = 0.0f;

            for (int i = 0; i < activeDimensions; ++i)
            {
                float distance = Math.Abs(playerPostion.GetPosition(i) - enemyPosition.GetPosition(i));
                totalDistance += (distance * distance);

            }

            return totalDistance < ((playerWidth + enemyRadius) * (playerWidth + enemyRadius));
        }
Ejemplo n.º 2
0
        private void SpawnEnemy(DimensionalManager dm, Player player)
        {
            int enemyType = Random.Next(Enum.GetNames(typeof(EnemyType)).Length);
            Position playerPos = player.getPosition();

            float[] position = new float[dm.GetNumberOfActiveDimensions()];
            double offSet;
            Random random = new Random();
            for(int i = 0; i< position.Length; ++i)
            {
                do
                {
                    offSet = random.NextDouble() - 0.5;
                    position[i] =
                        i % 2 == 0 ?
                        (float)(playerPos.GetPosition(i) + dm.GetScreenWidth() * offSet) :
                        (float)(playerPos.GetPosition(i) + dm.GetScreenHeight() * offSet);
                }
                while (Math.Abs(playerPos.GetPosition(i) - position[i]) < player.getRadius());
            }

            addEnemy(
                (EnemyType)enemyType,
                new Position(position)
                );
        }