public void AsteroidManager_Render_Test() { var game = new TestGame(); AsteroidManager asteroidManager = null; game.Initialized += (o, e) => { var level = new Level(game.Framework.AssetManager.GetFullPath(@"RocketCommander/Levels/EasyFlight.level")); asteroidManager = new AsteroidManager(level, game); }; game.Updated += (o, e) => { asteroidManager.Update(); game.DebugText += "\n\n" + asteroidManager.GetVisibilityText(); }; game.Run(); }
public void Mission_Construct_Test() { foreach (string levelFile in new string[] { @"RocketCommander/Levels/EasyFlight.level", @"RocketCommander/Levels/LostCivilization.level", @"RocketCommander/Levels/TheRevenge.level", @"RocketCommander/Levels/ValleyofDeath.level"}) { var game = new TestGame(); var level = new Level(game.Framework.AssetManager.GetFullPath(levelFile)); Assert.AreEqual(Path.GetFileNameWithoutExtension(levelFile), level.Name); Assert.IsTrue(level.Width > 0); Assert.IsTrue(level.Length > 0); Assert.IsTrue(level.Items.Count > 0); Assert.AreEqual(level.Length, level.SunColors.Length); } }
public AsteroidManager(Level level, RocketCommanderGame game) { this.level = level; this.game = game; // Create all asteroids for (int z = minSector; z <= maxSector; ++z) { for (int x = minSector; x <= maxSector; ++x) { int iz = z + middleSector; int ix = x + middleSector; this.asteroids[iz, ix] = new List<Asteroid>(); GenerateAsteroids(this.asteroids[iz, ix], x, z); } } // Create smaller asteroids for (int z = minSmallSector; z <= maxSmallSector; ++z) { for (int x = minSmallSector; x <= maxSmallSector; ++x) { int iz = z + smallMiddleSector; int ix = x + smallMiddleSector; this.smallAsteroids[iz, ix] = new List<SmallAsteroid>(); GenerateSmallAsteroids(this.smallAsteroids[iz, ix], this.asteroids[iz + smallSectorAdd, ix + smallSectorAdd].Count, x, z); } } // Precalculate visible sector stuff for (int z = minSector; z <= maxSector; ++z) { for (int x = minSector; x <= maxSector; ++x) { int iz = z + middleSector; int ix = x + middleSector; this.sectorVisibleInRange[iz, ix] = MathUtils.Sqrt(x * x + z * z) < middleSector + 0.25f; this.sectorDirection[iz, ix] = new Vector3(x, 0, z).Normalize(); } } UpdateSectors(); }