Exemple #1
0
        /// <summary>
        /// initializes and returns an Asteroid.
        /// </summary>
        /// <param name="position">starting position of the asteroid.</param>
        /// <param name="direction">Seed value for new random direction.</param>
        /// <param name="speed">Seed value for new random speed.</param>
        /// <param name="asteroidType">Asteroid type to generate.</param>
        /// <returns>A new Asteroid instance.</returns>
        /// <remarks>
        /// The direction and speed of the asteroid is randomized, but is 
        /// based on the passed values.
        /// </remarks>
        public Asteroid generateAsteroid(Vector2 position, Vector2 direction, float speed, string asteroidType)
        {
            Asteroid spawnedAsteroid = new Asteroid();
            //position needs to vary based on screen resolution

            //randomize direction - rather than accepting a direction should do it all here
            int randomNumber = rand.Next(4);
            if (randomNumber == 3)
                direction.X = direction.X * -1;
            else if(randomNumber == 2)
                direction.X = direction.Y * -1;
            else if (randomNumber == 1)
            {
                direction.X = direction.X * -1;
                direction.Y = direction.Y * -1;
            }//for 0 we will leave it alone

            randomNumber = rand.Next(10);
            if (randomNumber > 6)
                speed += rand.Next((int)speed);
            else if(randomNumber > 2)
                speed -= rand.Next((int)(speed+1)/2);
            //and leave speed alone otherwise

            if (asteroidType == Asteroid.ASTEROID_TYPE)
            {
                spawnedAsteroid.texture2D = asteroid;
                spawnedAsteroid.type = Asteroid.ASTEROID_TYPE;
            }
            else if (asteroidType == Asteroid.SMALL_ASTEROID_TYPE)
            {
                spawnedAsteroid.texture2D = smallAsteroid;
                spawnedAsteroid.type = Asteroid.SMALL_ASTEROID_TYPE;
            }
            else //tiny type
            {
                spawnedAsteroid.texture2D = tinyAsteroid;
                spawnedAsteroid.type = Asteroid.TINY_ASTEROID_TYPE;
            }
            spawnedAsteroid.init(position, direction, speed, 100, true);
            return spawnedAsteroid;
        }