コード例 #1
0
        /// <summary>
        /// Prepares the engine for use. This must be the first method you call on the engine when you provide your own <see cref="GraphicsDeviceManager"/>.
        /// </summary>
        /// <param name="deviceManager">The graphics device manager from MonoGame.</param>
        /// <param name="font">The font to load as the <see cref="DefaultFont"/>.</param>
        /// <param name="consoleWidth">The width of the default root console (and game window).</param>
        /// <param name="consoleHeight">The height of the default root console (and game window).</param>
        /// <returns>The default active console.</returns>
        public static Consoles.Console Initialize(GraphicsDeviceManager deviceManager, string font, int consoleWidth, int consoleHeight)
        {
            if (Device == null)
            {
                Device = deviceManager.GraphicsDevice;
            }

            SetupFontAndEffects(font);

            DeviceManager = deviceManager;

            DefaultFont.ResizeGraphicsDeviceManager(deviceManager, consoleWidth, consoleHeight, 0, 0);

            // Create the default console.
            ActiveConsole = new Consoles.Console(consoleWidth, consoleHeight);
            ActiveConsole.TextSurface.DefaultBackground = Color.Black;
            ActiveConsole.TextSurface.DefaultForeground = ColorAnsi.White;
            ((Consoles.Console)ActiveConsole).Clear();

            ConsoleRenderStack.Add(ActiveConsole);

            renderBatch = new SpriteBatch(Device);

            ResetRendering();

            return((Consoles.Console)ActiveConsole);
        }
コード例 #2
0
        public static void Draw(GameTime gameTime)
        {
            GameTimeElapsedRender = gameTime.ElapsedGameTime.TotalSeconds;
            GameTimeDraw          = gameTime;

            ConsoleRenderStack.Render();
            EngineDrawFrame?.Invoke(null, System.EventArgs.Empty);
        }
コード例 #3
0
        private static Consoles.Console SetupStartingConsole(int consoleWidth, int consoleHeight)
        {
            ActiveConsole = new Consoles.Console(consoleWidth, consoleHeight);
            ActiveConsole.TextSurface.DefaultBackground = Color.Black;
            ActiveConsole.TextSurface.DefaultForeground = ColorAnsi.White;
            ((Consoles.Console)ActiveConsole).Clear();

            ConsoleRenderStack.Add(ActiveConsole);

            return((Consoles.Console)ActiveConsole);
        }
コード例 #4
0
        public static void Update(GameTime gameTime, bool windowIsActive)
        {
            GameTimeElapsedUpdate = gameTime.ElapsedGameTime.TotalSeconds;
            GameTimeUpdate        = gameTime;

            if (DoUpdate)
            {
                if (windowIsActive)
                {
                    if (UseKeyboard)
                    {
                        Keyboard.ProcessKeys(GameTimeUpdate);
                    }

                    if (UseMouse)
                    {
                        Mouse.ProcessMouse(GameTimeUpdate);
                        if (ProcessMouseWhenOffScreen ||
                            (Mouse.ScreenLocation.X >= 0 && Mouse.ScreenLocation.Y >= 0 &&
                             Mouse.ScreenLocation.X < WindowWidth && Mouse.ScreenLocation.Y < WindowHeight))
                        {
                            if (_activeConsole != null && _activeConsole.ExclusiveFocus)
                            {
                                _activeConsole.ProcessMouse(Mouse);
                            }
                            else
                            {
                                ConsoleRenderStack.ProcessMouse(Mouse);
                            }
                        }
                        else
                        {
                            // DOUBLE CHECK if mouse left screen then we should stop kill off lastmouse
                            if (LastMouseConsole != null)
                            {
                                Engine.LastMouseConsole.ProcessMouse(Mouse);
                                Engine.LastMouseConsole = null;
                            }
                        }
                    }

                    if (_activeConsole != null)
                    {
                        _activeConsole.ProcessKeyboard(Keyboard);
                    }
                }
                ConsoleRenderStack.Update();
            }
            EngineUpdated?.Invoke(null, System.EventArgs.Empty);
        }
コード例 #5
0
        public static void Draw(GameTime gameTime)
        {
            GameTimeElapsedRender = gameTime.ElapsedGameTime.TotalSeconds;
            GameTimeDraw          = gameTime;

            if (DoRender)
            {
                Device.SetRenderTarget(renderTarget);
                ConsoleRenderStack.Render();
                Device.SetRenderTarget(null);

                // Render based on full screen settings

                renderBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.DepthRead, RasterizerState.CullNone);
                renderBatch.Draw(renderTarget, RenderRect, Color.White);
                renderBatch.End();
            }

            EngineDrawFrame?.Invoke(null, System.EventArgs.Empty);
        }