예제 #1
0
        public MainMenu (Application application, Action onPlayGame, CompositorColorCorrectionNode colorCorrectionNode)
        {
            this.application = application;
            this.onPlayGame = onPlayGame;

            ValidMessages = new[] { (int) MessageId.WindowResize, (int) MessageId.UpdateLocale };
            application.MessageManager += this;

            canvas = application.RendererContext.Canvas;
            var input = new FreezingArcherInput(application, application.MessageManager);
            input.Initialize (canvas);

            canvas.SetSize(application.Window.Size.X, application.Window.Size.Y);
            canvas.ShouldDrawBackground = false;

            settings = new SettingsMenu (application, canvas, colorCorrectionNode);
            tutorial = new TutorialMenu (application, canvas);

            background = new ImagePanel (canvas);
            background.ImageName = "Content/MainMenu.jpg";
            updateBackground();

            exitButton = new Button (canvas);
            exitButton.Text = Localizer.Instance.GetValueForName("quit_game");
            exitButton.Width = BUTTON_WIDTH;
            exitButton.X = 40;
            exitButton.Y = canvas.Height - exitButton.Height - 60;
            exitButton.Clicked += (sender, arguments) => application.Window.Close ();

            settingsButton = new Button (canvas);
            settingsButton.Text = Localizer.Instance.GetValueForName("settings");
            settingsButton.Width = BUTTON_WIDTH;
            settingsButton.X = 40;
            settingsButton.Y = exitButton.Y - settingsButton.Height - 40;
            settingsButton.Clicked += (sender, arguments) => settings.Show();

            tutorialButton = new Button (canvas);
            tutorialButton.Text = Localizer.Instance.GetValueForName("tutorial");
            tutorialButton.Width = BUTTON_WIDTH;
            tutorialButton.X = 40;
            tutorialButton.Y = settingsButton.Y - tutorialButton.Height - 40;
            tutorialButton.Clicked += (sender, arguments) => tutorial.Show();

            startButton = new Button (canvas);
            startButton.Text = Localizer.Instance.GetValueForName("start_game");
            startButton.Width = BUTTON_WIDTH;
            startButton.X = 40;
            startButton.Y = tutorialButton.Y - startButton.Height - 40;
            startButton.Clicked += (sender, arguments) => {
                application.MessageManager.UnregisterMessageConsumer(this);
                application.MessageManager.UnregisterMessageConsumer(settings);
                settings.Destroy();
                canvas.Dispose();
                onPlayGame();
            };

            acagamicsFoo = new ImagePanel (canvas);
            acagamicsFoo.ImageName = "Content/figure_color.png";
            acagamicsFoo.Width = 64;
            acagamicsFoo.Height = 106;
            acagamicsFoo.X = canvas.Width - acagamicsFoo.Width - 10;
            acagamicsFoo.Y = canvas.Height - acagamicsFoo.Height - 10;
        }