示例#1
0
        /// <summary>
        /// Unload any content (textures, fonts, etc) used by this state. Called when the state is removed.
        /// </summary>
        public override void UnloadContent()
        {
            /*try
            {
                ServiceManager.Game.GraphicsDevice.Reset();
                ServiceManager.Game.GraphicsDevice.VertexDeclaration = null;
                ServiceManager.Game.GraphicsDevice.Vertices[0].SetSource(null, 0, 0);
            }
            catch (Exception ex)
            {
                // If the graphics device was disposed already, it throws an exception.
                Console.Error.WriteLine(ex);
            }*/

            if (mouseCursor != null)
            {
                mouseCursor.DisableCustomCursor();
                mouseCursor = null;
            }
            EnvironmentEffects = null;
            Bases = null;
            buffbar = null;
            cd = null;
            hud = null;
            renderer = null;
            fps = null;
            map = null;
            visibleTiles = null;
            Scores = null;
            Players = null;
            Projectiles = null;
            Chat = null;
            buffer = null;
            miniMap.Dispose();
            miniMap = null;

            if (OnGameFinished != null)
            {
                EventArgs args = new EventArgs();
                OnGameFinished.Invoke(this, args);
            }
        }
示例#2
0
 /// <summary>
 /// Initialize any components required by this state.
 /// </summary>
 public override void Initialize()
 {
     ServiceManager.Game.FormManager.ClearWindow();
     Options options = ServiceManager.Game.Options;
     RendererAssetPool.DrawShadows = GraphicOptions.ShadowMaps;
     mouseCursor = new MouseCursor(options.KeySettings.Pointer);
     mouseCursor.EnableCustomCursor();
     renderer = ServiceManager.Game.Renderer;
     fps = new FrameCounter();
     Chat = new ChatArea();
     Projectiles = new ProjectileManager();
     Tiles = new TexturedTileGroupManager();
     Utilities = new UtilityManager();
     cd = new Countdown();
     Lazers = new LazerBeamManager(this);
     Scene.Add(Lazers, 0);
     Players = new PlayerManager();
     currentGameMode = ServiceManager.Theater.GetCurrentGameMode();
     Flags = new FlagManager();
     Bases = new BaseManager();
     EnvironmentEffects = new EnvironmentEffectManager();
     buffbar = new BuffBar();
     Scores = new ScoreBoard(currentGameMode, Players);
     input = new ChatInput(new Vector2(5, ServiceManager.Game.GraphicsDevice.Viewport.Height), 300);//300 is a magic number...Create a chat width variable.
     input.Visible = false;
     hud = HUD.GetHudForPlayer(Players.GetLocalPlayer());
     localPlayer = Players.GetLocalPlayer();
     Scene.MainEntity = localPlayer;
     sky = ServiceManager.Resources.GetTexture2D("textures\\misc\\background\\sky");
     tips = new GameTips(new GameContext(CurrentGameMode, localPlayer));
     helpOverlay = new HelpOverlay();
 }