예제 #1
0
파일: Map.cs 프로젝트: bethge/GalaticChaos
 public static Map GetRandomInstance3(int objCount, int width, int height)
 {
     Map map = new Map(width, height);
       Random r = new Random();
       for (int i=0; i<objCount; i++)
       {
       int allegianceNo = r.Next(3);
       Allegiance allegiance = Allegiance.Neutral;
       switch (allegianceNo)
       {
           case 0:
               allegiance = Allegiance.Player;
               break;
           case 1:
               allegiance = Allegiance.Neutral;
               break;
           case 2:
               allegiance = Allegiance.Computer;
               break;
       }
       int sizeNo = r.Next(3);
       PlanetSize size = PlanetSize.Medium;
       switch (sizeNo)
       {
           case 0:
               size = PlanetSize.Small;
               break;
           case 1:
               size = PlanetSize.Medium;
               break;
           case 2:
               size = PlanetSize.Large;
               break;
       }
       int noOfMinions = r.Next(50);
       int type = r.Next(6);
       int x = r.Next(width);
       int y = r.Next(height);
       Vector2 pos = new Vector2(x, y);
       GameObject unit = null;
       switch (type)
       {
           case 0:
               unit = new Asteroid(pos);
               break;
           case 1:
               unit = new DeathStar(pos, allegiance, noOfMinions);
               break;
           case 2:
               unit = new Defender(pos,allegiance);
               break;
           case 3:
               unit = new Interceptor(pos, allegiance);
               break;
           case 4:
               unit = new Planet(pos, allegiance, size, noOfMinions);
               break;
           case 5:
               unit = new Predator(pos, allegiance);
               break;
       }
       if (unit != null) map.mInitialGameObjects.Add(unit);
       }
       return map;
 }
예제 #2
0
파일: Map.cs 프로젝트: bethge/GalaticChaos
        /// <summary>
        /// Returns a map instance with objCount many random-placed interceptors
        /// </summary>
        /// <param name="objCount">number of planets to create</param>
        /// <param name="width">map width</param>
        /// <param name="height">map height</param>
        /// <returns>new map instance</returns>
        public static Map GetRandomInstance2(int objCount, int width, int height)
        {
            var map = new Map(width, height);

              // create randomly game objects on the map
              var r = new Random();
              for (int i = 0; i < objCount; i++)
              {
              int x = r.Next(width);
              int y = r.Next(height);
              var iceptor = new Interceptor(new Vector2(x, y), Allegiance.Player);
              map.mInitialGameObjects.Add(iceptor);
              }
              return map;
        }
예제 #3
0
 /// <summary>
 /// Tests Loading / Saving an interceptor
 /// </summary>
 private static void DebugTestUnitLoadSave()
 {
     GameLogic gameLogic = GameLogic.GetInstance();
     GameObjectManager objectManager = GameObjectManager.GetInstance();
     gameLogic.SetMap(new Map(100, 100));
     GameStateManager stateManager = gameLogic.GetGameStateManager();
     Interceptor iceptor = new Interceptor(new Vector2(1, 2), 0);
     objectManager.AddUnit(iceptor);
     Debug.WriteLine("Serializing a lonely interceptor (GameLogic.cs->DEBUG)...");
     stateManager.SaveGame("testme.lol");
     gameLogic.mObjectList.Remove(iceptor);
     stateManager.LoadGame("testme.lol");
     Debug.Assert(gameLogic.mObjectList.Count == 1, "Loaded too many objects!");
     Debug.Assert(gameLogic.mObjectList[0] is Interceptor, "Loaded GameObject is not an interceptor!");
     Vector2 pos = gameLogic.mObjectList[0].Position;
     // ReSharper disable CompareOfFloatsByEqualityOperator
     // I may use exact comparison here because I assigned the values directly -> no
     // rounding errors possible
     Debug.Assert(pos.X == 1 && pos.Y == 2, "Interceptor has wrong position!");
     // ReSharper restore CompareOfFloatsByEqualityOperator
     Debug.WriteLine("interceptor's pos (DEBUG): " + pos);
     GameObjectManager.GetInstance().RemoveGameObject(gameLogic.mObjectList[0]);
     gameLogic.GetGameStateManager().UnloadGame();
 }
예제 #4
0
 private static void InheritanceTest()
 {
     Interceptor iceptor = new Interceptor(new Vector2(0, 0), Allegiance.Player);
     CollisionManager colMan = new CollisionManager();
     PlayerFogManager playerFogMan = new PlayerFogManager();
     PcFogManager pcFogMan = new PcFogManager();
     iceptor.SetQuadNode(typeof(CollisionManager), new QuadNode(null, colMan));
     iceptor.SetQuadNode(typeof(PlayerFogManager), new QuadNode(null, playerFogMan));
     iceptor.SetQuadNode(typeof(PcFogManager), new QuadNode(null, pcFogMan));
     Debug.Assert(iceptor.GetQuadNode(typeof(CollisionManager)).mManager
         != iceptor.GetQuadNode(typeof(PlayerFogManager)).mManager
         && iceptor.GetQuadNode(typeof(PlayerFogManager)).mManager
         != iceptor.GetQuadNode(typeof(PcFogManager)).mManager);
     Debug.WriteLine(iceptor.GetQuadNode(typeof(CollisionManager)).mManager);
     Debug.WriteLine(iceptor.GetQuadNode(typeof(PlayerFogManager)).mManager);
     Debug.WriteLine(iceptor.GetQuadNode(typeof(PcFogManager)).mManager);
     GameLogic.GetInstance().GetGameStateManager().UnloadGame();
 }
예제 #5
0
        private static void CollisionTest()
        {
            GameLogic.GetInstance().SetMap(new Map(10, 10));
            CollisionManager colMan = new CollisionManager();
            colMan.Init();
            GameLogic.GetInstance().SetCollisionManager(colMan);
            colMan.MinimumSideLength = 1;
            Interceptor iceptor1 = new Interceptor(new Vector2(1, 1), Allegiance.Player);
            Interceptor iceptor2 = new Interceptor(new Vector2(9, 9), Allegiance.Player);
            Interceptor iceptor3 = new Interceptor(new Vector2(3, 3), Allegiance.Player);

            colMan.RegisterUnit(iceptor1);
            colMan.RegisterUnit(iceptor2);
            colMan.RegisterUnit(iceptor3);
            iceptor3.Position = new Vector2(7, 7);
            //List<QuadNode> leaves = colMan.mRoot.mChild[Orientation.LeftLower].GetAllNeighbourLeaves(false);
            Debug.WriteLine("CollisionTest done.");
            GameLogic.GetInstance().GetGameStateManager().UnloadGame();
        }