Exemple #1
0
        /// <summary>
        /// Creates an asteroid
        /// </summary>
        /// <param name="content"></param>
        /// <param name="origin">Position on screen</param>
        /// <param name="speed"></param>
        /// <param name="angle"></param>
        public Asteroid(Texture2D texture, Vector2 origin, Vector2 speed, float angle, AsteroidManager.Size size)
            : base(origin)
        {
            // Make sure you set the top speed!
            topSpeed = 50f;

            Position = origin;
            Speed = speed;
            MovementAngle = angle;
            switch (size)
            {
                case (AsteroidManager.Size.SMALL):
                    _mass = (float)new Random().NextDouble() * 5.0f + 5.0f;
                    break;
                case (AsteroidManager.Size.LARGE):
                    _mass = (float)new Random().NextDouble() * 10.0f + 5.0f;
                    break;
            }
            this.size = size;
            SetTexture(texture);
        }
Exemple #2
0
    //-----METHODS-----

    /// <summary>
    /// Setup the controller
    /// </summary>
    /// <param name="size">Size of the asteroid</param>
    public void Initialise(AsteroidManager.Size size)
    {
        asteroidSize = size;
        switch (size)
        {
        case AsteroidManager.Size.SMALL:
            transform.localScale = Vector3.one * Random.Range(0.1f, 0.2f);
            speed = Random.Range(-180f, 180f);
            break;

        case AsteroidManager.Size.MEDIUM:
            transform.localScale = Vector3.one * Random.Range(0.2f, 0.4f);
            speed = Random.Range(-45f, 45f);
            break;

        case AsteroidManager.Size.LARGE:
            transform.localScale = Vector3.one * Random.Range(2f, 4f);
            speed = Random.Range(-20f, 20f);

            asteroidStats = GetComponent <StatsController>();
            asteroidStats.Initialise();
            break;
        }
    }