コード例 #1
0
        public override ControllerResult Start(ControllerSettings settings)
        {
            var mainMenuResult       = new AtomicReference <NextController>(NextController.MainMenu);
            var gameSettingsProvider = new AtomicReference <Func <GameSettings> >();

            pages.InitializeComponents(window, mainMenuResult, gameSettingsProvider);
            mainScreen.InitializeMainScreen(window, MAIN_SCR_IMAGE);

            while (window.IsOpen() && mainMenuResult.Value == NextController.MainMenu)
            {
                window.DispatchEvents();
                window.Clear();
                window.Draw(mainScreen);
                window.Draw(pages.Active);
                window.Display();
            }

            window.EnsureClosed();

            return(new ControllerResult
            {
                Next = mainMenuResult.Value,
                Settings = gameSettingsProvider.Value?.Invoke()
            });
        }
コード例 #2
0
        public GuiView(GameWindow window, ResourceManager resources, Map world, WorldView worldView)
        {
            this.abilitiesContainer = new AbilitiesContainer(resources, window);
            this.contextInfo        = new ContextInfo(new Vector2f(window.Size.X - 400, window.Size.Y - 50), 350);
            this.model       = world.Model;
            this.pageControl = new PageControl();
            this.view        = new View(window.DefaultView);
            this.world       = world;
            this.worldView   = worldView;

            pageControl.InitializeComponents(window, resources, world.TurnCycle);
            pageControl.Active.Add(abilitiesContainer);
            pageControl.Bus.Subscribe(window);

            window.MouseMoved += MouseMoved;
            world.ObjectSelectStateChanged += ObjectSelectStateChanged;
        }