示例#1
0
 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();
 }
示例#2
0
 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);
     }
 }
示例#3
0
        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();
        }