コード例 #1
0
        public void Dispose()
        {
            if (audio != null)
            {
                audio.Dispose();
                audio = null;
            }

            if (renderer != null)
            {
                renderer.Dispose();
                renderer = null;
            }

            if (resource != null)
            {
                resource.Dispose();
                resource = null;
            }

            if (window != null)
            {
                window.Dispose();
                window = null;
            }
        }
コード例 #2
0
        //private Demo demo;

        public DoomApplication()
        {
            try
            {
                var style = Styles.Close | Styles.Titlebar;
                window = new RenderWindow(new VideoMode(640, 400), "Managed Doom", style);
                window.Clear(new Color(128, 128, 128));
                window.Display();

                resource = new CommonResource("DOOM2.WAD");
                renderer = new SfmlRenderer(window, resource, true);
                audio    = new SfmlAudio(resource.Wad);

                menu = new DoomMenu(this);

                state = ApplicationState.Opening;

                opening = new OpeningSequence();

                players = new Player[Player.MaxPlayerCount];
                cmds    = new TicCmd[Player.MaxPlayerCount];
                for (var i = 0; i < Player.MaxPlayerCount; i++)
                {
                    players[i] = new Player(i);
                    cmds[i]    = new TicCmd();
                }
                players[0].InGame = true;

                options          = new GameOptions();
                options.Skill    = GameSkill.Hard;
                options.GameMode = resource.Wad.GameMode;
                options.Episode  = 1;
                options.Map      = 1;

                //demo = new Demo("test.lmp");
                //options = demo.Options;

                game       = new DoomGame(players, resource, options);
                game.Audio = audio;

                events = new List <DoomEvent>();

                window.Closed += (sender, e) => window.Close();

                window.KeyPressed  += KeyPressed;
                window.KeyReleased += KeyReleased;

                window.SetFramerateLimit(35);
            }
            catch (Exception e)
            {
                ExceptionDispatchInfo.Capture(e).Throw();
            }
        }