/// <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); }
//-----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; } }