private void NewAsteroid(Asteroid a, int index) { int texIndex = random.Next (0, asteroidTextures.Count - 1); Asteroid tempAsteroid = new Asteroid (gameType == GameType.Facebook ? a.AsteroidTexture : asteroidTextures[texIndex]); float scale = index == 2 ? .75f : .42f; tempAsteroid.Scale *= scale; //Console.WriteLine(scale); tempAsteroid.Index = index; tempAsteroid.Position = a.Position; tempAsteroid.Velocity = RandomVelocity (); tempAsteroid.Rotation = (float)random.NextDouble () * MathHelper.Pi * 4 - MathHelper.Pi * 2; tempAsteroid.RotationSpin = (float)random.NextDouble (); //Console.WriteLine (tempSprite.Rotation); tempAsteroid.Create (); asteroids.Add (tempAsteroid); }
private void SplitAsteroid(Asteroid a, GameTime gameTime) { int splitCount = asteroidSplitCount (a.Index); if (a.Index == 1) { for (int i = 0; i < splitCount; i++) { NewAsteroid (a, 2); } } else if (a.Index == 2) { for (int i = 0; i < splitCount; i++) { NewAsteroid (a, 3); } } spawnDrops (a.Position, gameTime); }
private void CreateAsteroids() { if (IsTutorial) return; int value; var asteroidCount = baseAsteroids + System.Math.Floor ((double)level / 2); //asteroidCount = 1; Vector2 offset = ship.Position - new Vector2 (ScreenWidth / 2, ScreenHeight / 2); for (int i = 0; i < asteroidCount; i++) { Console.WriteLine ("Creating asteroid " + i + " of " + asteroidCount); int index = random.Next (0, asteroidTextures.Count - 1); Console.WriteLine(index + " of " + asteroidTextures.Count); Asteroid tempAsteroid = new Asteroid (asteroidTextures[index]); tempAsteroid.Index = 1; double xPos = 0; double yPos = 0; value = random.Next (0, 8); switch (value) { case 0: case 1: xPos = tempAsteroid.Width + random.NextDouble () * 40; yPos = random.NextDouble () * ScreenHeight; break; case 2: case 3: xPos = ScreenWidth - random.NextDouble () * 40; yPos = random.NextDouble () * ScreenHeight; break; case 4: case 5: xPos = random.NextDouble () * ScreenWidth; yPos = tempAsteroid.Height + random.NextDouble () * 40; break; default: xPos = random.NextDouble () * ScreenWidth; yPos = ScreenHeight - random.NextDouble () * 40; break; } tempAsteroid.Position = new Vector2 ((float)xPos, (float)yPos) + offset; Console.WriteLine ("New Asteroid " + value + " , " + tempAsteroid.Position); tempAsteroid.Velocity = RandomVelocity (); tempAsteroid.Rotation = (float)random.NextDouble () * MathHelper.Pi * 4 - MathHelper.Pi * 2; tempAsteroid.RotationSpin = (float)random.NextDouble () * random.Next (-1, 1); tempAsteroid.Create (); asteroids.Add (tempAsteroid); } }