예제 #1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main(string[] args)
        {
            var renderer  = new GlRenderer();
            var game      = new JunkbotGame();
            var gameTimer = new Stopwatch();

            renderer.Start(game);
            game.Begin();
            gameTimer.Start();

            while (renderer.IsOpen)
            {
                TimeSpan deltaTime = gameTimer.Elapsed;
                gameTimer.Reset();

                InputEvents inputs = renderer.GetInputEvents();

                game.Update(deltaTime, inputs);
                renderer.RenderFrame();
            }
        }
예제 #2
0
        public void Run()
        {
            MainThread      = Thread.CurrentThread;
            MainThread.Name = "MainThread";

            MainWindow = new GameWindow(
                new GameWindowSettings
            {
                IsMultiThreaded = false,
                RenderFrequency = 60.0,
                UpdateFrequency = 60.0,
            },
                new NativeWindowSettings
            {
                API        = ContextAPI.OpenGL,
                APIVersion = new Version(3, 3),
                Title      = $"Natmc {Version}",
                Size       = new Vector2i(800, 600),
            });

            MainWindow.Load += () =>
            {
                Renderer = new GlRenderer();
                Renderer.Init();
                AddObject <FramerateCounter>();
            };

            MainWindow.RenderFrame += (args) =>
            {
                foreach (var obj in EngineObjects)
                {
                    obj.Update((float)args.Time);
                }
            };

            MainWindow.Run();
        }