Exemplo n.º 1
0
        public void Start()
        {
            hasClosed        = false;
            gameLoop         = new DispatcherTimerGameLoop(1000 / 100);
            gameLoop.Update += Update;

            gameWindow         = new GameWindow(settings);
            gameWindow.Closed += (sender, args) => Stop();

            SocketFactory socketGame = new SocketFactory(settings);

            socketGame.Cancel += Stop;
            socketManager      = socketGame.CreateSocketManager();

            GraphicManager graphicManager = new GraphicManager(gameWindow.Canvas);
            InputFactory   inputFactory   = new InputFactory(gameWindow.Canvas, socketManager);

            if (hasClosed)
            {
                return;
            }

            world = new World(settings, inputFactory, graphicManager);
            CompositionTarget.Rendering += (sender, args) => world.Draw();
            world.Start();
            gameWindow.Show();
            gameLoop.Start();
        }