Ejemplo n.º 1
0
 public MS_SetAsteroidDensity(int timeStamp, Asteroid.AsteroidDensity density)
     : base(CommandID.SetAsteroidDensity, timeStamp)
 {
     z_density = density;
 }
Ejemplo n.º 2
0
        // Retrieves a new asteroid from the pool. If the pool is empty, it creates one from scratch.
        public static Asteroid getNewAsteroid(Vector2 position, int size, float speed, Texture2D image)
        {
            Rectangle viewport = StageManager.GetViewport();
            Asteroid asteroid; ;
            // if there are any enemies in the pool, use one of them
            if (zs_pool.Count > 0)
            {
                asteroid = zs_pool[zs_pool.Count - 1];
                asteroid.Sprite = (image==null ? zs_images[RandomGen.Next(zs_images.Count)] : image);
                asteroid.Size = size;
                zs_pool.RemoveAt(zs_pool.Count - 1);
            }
            else
                asteroid = new Asteroid(image,size); // pool was empty, so create a new enemy

            asteroid.Speed = speed;
            asteroid.Direction = MathHelper.Lerp(1.35f, 1.65f, (float)RandomGen.NextDouble()) * MathHelper.Pi;

            if (position == Vector2.Zero)
                asteroid.Position = new Vector2(RandomGen.Next(viewport.Width), -RandomGen.Next(viewport.Height/5));
            else
                asteroid.Position = position;

            asteroid.IsAlive = true;
            z_activeAsteroids++;
            return asteroid;
        }