/// <summary> /// Switch the camera between controlled and birdview. /// </summary> private void SwitchCamera() { //Switch between birdview and controlled camera if (m_ActiveCamera == m_BirdsView) { m_ActiveCamera = m_Controlled.GetCamera(); } else { m_ActiveCamera = m_BirdsView; } }
/// <summary> /// Initialize the game. /// </summary> /// <note>DO NOT CHANGE INITIALIZATION ORDER</note> public override void Initialize() { //Initialize environment if (!m_Initialized) { CreateSky(); } if (!m_Initialized) { CreateGUI(); } if (!m_Initialized) { CreateArrow(); } if (!m_Initialized) { CreateLighting(); } //If has been initialized, remove old ships if (m_Initialized) { foreach (Ship ship in m_Ships) { ship.Remove(); } } //Load ships m_Ships = m_Data.LoadShipList(m_Layer); foreach (Ship ship in m_Ships) { ship.Initialize(); } //Create the board CreateBoard(); UpdateBoard(); //Create camera if (!m_Initialized) { CreateBirdsView(); } //Create and initialize actor if player if (m_Player == Player.Klotski || m_Player == Player.Storm) { if (m_Initialized) { m_Actor.Remove(); } m_Actor = new Actor(m_Layer); m_Controlled = m_Actor; m_ActiveCamera = m_Controlled.GetCamera(); m_Actor.Initialize(m_Ships[0], 3); Renderer.Lights.Add(m_Actor.GetLight()); } else { m_ActiveCamera = m_BirdsView; } //Initialize AI m_Depth = 0; m_MaxDepth = 1; m_VictoryWait = 0; m_ShipStack.Clear(); m_IteratorStack.Clear(); //Add current state m_VisitedList.Clear(); GameData Root = new GameData(); foreach (Ship ship in m_Ships) { Root.AddShip(ship); } m_VisitedList.Add(Root); //Start BGM Global.SoundManager.PlayBGM(Global.GAME_BGM); //Game is initialized m_Initialized = true; }