public void StartBelt(int iNumAsteroids, Asteroid.ASTEROID_SIZE iMinSize)
 {
     asteroids = new ArrayList();
     Asteroid.ASTEROID_SIZE aAsteroidSize;
     for (int i = 0; i < iNumAsteroids; i++)
     {
         aAsteroidSize = Asteroid.ASTEROID_SIZE.LARGE - rndGen.Next(Asteroid.ASTEROID_SIZE.LARGE - iMinSize + 1);
         asteroids.Add(new Asteroid(aAsteroidSize));
     }
 }
Beispiel #2
0
        public void StartBelt(int iNumAsteroids, Asteroid.ASTEROID_SIZE iMinSize)
        {
            var minSize   = Asteroid.ASTEROID_SIZE.LARGE - iMinSize + 1;
            var asteroids = new List <Asteroid>();

            for (int i = 0; i < iNumAsteroids; i++)
            {
                var size = Asteroid.ASTEROID_SIZE.LARGE - RandomizeHelper.Random.Next(minSize);
                asteroids.Add(new Asteroid(size));
            }

            lock (_updateAsteroidsLock)
                _asteroids = asteroids;
        }
Beispiel #3
0
        public void StartBelt(int iNumAsteroids, Asteroid.ASTEROID_SIZE iMinSize)
        {
            var asteroids = new List <Asteroid>();

            Asteroid.ASTEROID_SIZE aAsteroidSize;
            for (int i = 0; i < iNumAsteroids; i++)
            {
                aAsteroidSize = Asteroid.ASTEROID_SIZE.LARGE - Random.Next(Asteroid.ASTEROID_SIZE.LARGE - iMinSize + 1);
                asteroids.Add(new Asteroid(aAsteroidSize));
            }

            lock (_updateAsteroidsLock)
                _asteroids = asteroids;
        }
Beispiel #4
0
        /// <summary>
        /// Determine if a point is in contact with the asteroid.
        /// </summary>
        /// <param name="location">Current location of the</param>
        /// <param name="size">Point collection to check.</param>
        /// <param name="pointsToCheck">Point collection to check.</param>
        /// <returns>Indication if the point is inside the polygon.</returns>
        private bool AsteroidCollision(Point location, Asteroid.ASTEROID_SIZE size, IList <Point> pointsToCheck)
        {
            var inside = false;

            foreach (var ptCheck in pointsToCheck)
            {
                var dist  = ptCheck.DistanceTo(location);
                var pixel = (int)size * Asteroid.SIZE_INCREMENT;

                if (dist > pixel)
                {
                    continue;
                }

                inside = true;
                break;
            }

            return(inside);
        }
        public int CheckPointCollisions(Point ptCheck)
        {
            int pointValue = 0;
            int iCount     = asteroids.Count;

            for (int i = iCount - 1; i >= 0; i--)
            {
                if (((Asteroid)asteroids[i]).CheckPointInside(ptCheck))
                {
                    Asteroid.ASTEROID_SIZE sizeReduced = ((Asteroid)asteroids[i]).ReduceSize();
                    switch (sizeReduced)
                    {
                    case Asteroid.ASTEROID_SIZE.DNE:
                        pointValue = 250; // destroyed small - MEDIUM 100 pts
                        PlaySound("EXPLODE3.WAV");
                        asteroids.RemoveAt(i);
                        break;

                    case Asteroid.ASTEROID_SIZE.SMALL:
                        pointValue = 100; // destroyed large - MEDIUM 100 pts
                        PlaySound("EXPLODE2.WAV");
                        break;

                    case Asteroid.ASTEROID_SIZE.MEDIUM:
                        pointValue = 50; // destroyed large - 50 pts
                        PlaySound("EXPLODE1.WAV");
                        break;
                    }
                    // Add a new asteroid if it wasn't small
                    if (sizeReduced != Asteroid.ASTEROID_SIZE.DNE)
                    {
                        asteroids.Add(new Asteroid((Asteroid)asteroids[i]));
                    }

                    break;
                }
            }
            return(pointValue);
        }
 public AsteroidBelt(int iNumAsteroids, Asteroid.ASTEROID_SIZE iMinSize)
 {
     StartBelt(iNumAsteroids, iMinSize);
 }
Beispiel #7
0
 public AsteroidBelt(int iNumAsteroids, Asteroid.ASTEROID_SIZE iMinSize)
 {
     _updateAsteroidsLock = new object();
     StartBelt(iNumAsteroids, iMinSize);
 }