Пример #1
0
        private static void OnRendererRemoved()
        {
            GameLoop loop = TryQueryComponent <GameLoop>();

            if (loop != null && loop.IsRunning)
            {
                throw new InvalidOperationException("The renderer cannot be removed while the game loop is running.");
            }
        }
Пример #2
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            var logFile = new LogFile(@"..\..\log.txt", false, LogMessagePriority.Engine);
            GameEngine.RegisterComponent(logFile);

            var loop = new GameLoop(60);
            GameEngine.RegisterComponent(loop);

            var window = new GameWindow();
            GameEngine.RegisterComponent(window);

            var renderer = new Renderer(window, AntiAliasingMode._16xQCSAA);
            //renderer.Transform = Matrix2x3.Translation(50, 50);
            renderer.SyncInterval = 2;
            GameEngine.RegisterComponent(renderer);

            //var intro = new EngineIntro();
            //var introHandle = loop.Register(intro);
            //intro.AnimationComplete += (sender, e) =>
            //{
            //    introHandle.Dispose();
            loop.Register(new Tester());
            //};
            //var keyboard = new Keyboard();
            //GameEngine.RegisterComponent(keyboard);
            //keyboard.Initialize(window);
            //keyboard.RegisterListener(window);

            //keyboard.BeginCapture();
            loop.Start();

            window.Closing += (sender, e) =>
            {
                //keyboard.EndCapture();
                loop.Stop();
                logFile.Close();

                renderer.Dispose();
            };
            Application.Run(window);
        }
Пример #3
0
        private static void OnComponentRemoved(IEngineComponent component)
        {
            GameLoop loop = component as GameLoop;

            if (loop != null)
            {
                OnGameLoopRemoved(loop);
            }

            if (component is Renderer)
            {
                OnRendererRemoved();
            }

            Logger logger = component as Logger;

            if (logger != null)
            {
                OnLoggerRemoved(logger);
            }
        }
Пример #4
0
        private static void OnComponentAdded(IEngineComponent component)
        {
            GameLoop loop = component as GameLoop;

            if (loop != null)
            {
                OnGameLoopAdded(loop);
            }

            Renderer renderer = component as Renderer;

            if (renderer != null)
            {
                OnRendererAdded(renderer);
            }

            Logger logger = component as Logger;

            if (logger != null)
            {
                OnLoggerAdded(logger);
            }
        }
Пример #5
0
 private static void OnGameLoopRemoved(GameLoop loop)
 {
     loop.ResourceUpdateRequested -= GameLoop_ResourceUpdateRequested;
 }
Пример #6
0
 private static void OnGameLoopAdded(GameLoop loop)
 {
     loop.ResourceUpdateRequested += GameLoop_ResourceUpdateRequested;
 }