示例#1
0
        private void CreateButton(Widget widget, int height = 70)
        {
            widget.Registration = new Vector2(widget.Texture.Width * 0.5f, widget.Texture.Height * 0.5f);

            int width = (int) Math.Round((double) widget.Texture.Width);
            widget.CreateButton(new Rectangle(0, 0, width, height));

            widget.Zindex = 0.5f;
        }
示例#2
0
        public MainMenu(Controller ctrl)
            : base(ctrl)
        {
            Sound.StopAll(true);
            Sound.PlayCue("main_theme");
            Controller.IsMouseVisible = true;

            // Background.
            m_background = new Widget(this);
            m_background.LoadTexture(contentManager, "space-desktop");
            m_background.PositionPercent = new Vector2(0.5f, 0.5f);
            m_background.Zindex = 1.0f;
            m_background.Registration = new Vector2(m_background.Texture.Width, m_background.Texture.Height) * 0.5f;
            AddChild(m_background);

            // Logo.
            m_logo = new Widget(this);
            m_logo.LoadTexture(contentManager, "logo_sputnik");
            m_logo.PositionPercent = new Vector2(0.5f, 0.3f);
            m_logo.Position = new Vector2(-75.0f, 0.0f);
            m_logo.Zindex = 0.8f;
            m_logo.Registration = new Vector2(375.0f, 230.0f);
            m_mainMenu.Add(m_logo);
            AddChild(m_logo);

            // Logo text.
            m_logoText = new Widget(this);
            m_logoText.LoadTexture(contentManager, "logo");
            m_logoText.PositionPercent = new Vector2(0.5f, 0.3f);
            m_logoText.Position = new Vector2(-75.0f, 25.0f);
            m_logoText.Registration = new Vector2(375.0f, 230.0f);
            m_logoText.Zindex = 0.7f;
            m_mainMenu.Add(m_logoText);
            AddChild(m_logoText);

            // TeamQ badge.
            m_mainTeamQ = CreateSprite("teamq");
            m_mainTeamQ.PositionPercent = new Vector2(0.0f, 1.0f);
            m_mainTeamQ.Position = new Vector2(50.0f, -50.0f);
            m_mainMenu.Add(m_mainTeamQ);
            AddChild(m_mainTeamQ);

            ////
            Vector2 k_buttonPos = new Vector2(0.5f, 0.5f);
            const float k_buttonSpacing = 60.0f;
            float ypos = 50.0f;

            ImageButton startLevel = new ImageButton(this, "main_start_level", "main_start_level1");
            startLevel.PositionPercent = k_buttonPos;
            startLevel.Position = new Vector2(0.0f, ypos);
            CreateButton(startLevel);
            startLevel.OnActivate += () => {
                ShowDifficulty();
            };
            m_mainMenu.Add(startLevel);
            AddChild(startLevel);

            ypos += k_buttonSpacing;

            ImageButton credits = new ImageButton(this, "main_credits", "main_credits1");
            credits.PositionPercent = k_buttonPos;
            credits.Position = new Vector2(0.0f, ypos);
            CreateButton(credits);
            credits.OnActivate += () => {
                ShowCredits();
            };
            m_mainMenu.Add(credits);
            AddChild(credits);

            ypos += k_buttonSpacing;

            ImageButton quit = new ImageButton(this, "main_quit", "main_quit1");
            quit.PositionPercent = k_buttonPos;
            quit.Position = new Vector2(0.0f, ypos);
            CreateButton(quit);
            quit.OnActivate += () => {
                Controller.Exit();
            };
            m_mainMenu.Add(quit);
            AddChild(quit);

            ////////////////////////////////////////////////////////////////////////////
            ///// Difficulty select.

            Widget sprite = CreateSprite("difficulty_bg");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            sprite.Zindex = 0.2f;
            m_difficultySelect.Add(sprite);
            AddChild(sprite);

            sprite = CreateSprite("choose_difficulty");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            sprite.Zindex = 0.1f;
            m_difficultySelect.Add(sprite);
            AddChild(sprite);

            ImageButton diffNormal = new ImageButton(this, "diff_normal", "diff_normal1");
            CreateButton(diffNormal, 50);
            diffNormal.Visible = false;
            diffNormal.PositionPercent = new Vector2(0.5f, 0.5f);
            diffNormal.Position = new Vector2(0.0f, -20.0f);
            diffNormal.Zindex = 0.1f;
            diffNormal.OnActivate += () => {
                Controller.ChangeEnvironment(new Level1Environment(Controller));
            };
            m_difficultySelect.Add(diffNormal);
            AddChild(diffNormal);

            ImageButton diffFrost = new ImageButton(this, "diff_frost", "diff_frost1");
            CreateButton(diffFrost, 50);
            diffFrost.Visible = false;
            diffFrost.PositionPercent = new Vector2(0.5f, 0.5f);
            diffFrost.Position = new Vector2(0.0f, 40.0f);
            diffFrost.Zindex = 0.1f;
            diffFrost.OnActivate += () => {
                Level1Environment env = new Level1Environment(Controller);
                env.isFrostMode = true;
                Controller.ChangeEnvironment(env);
            };
            m_difficultySelect.Add(diffFrost);
            AddChild(diffFrost);

            ////////////////////////////////////////////////////////////////////////////
            ///// Create credits.

            sprite = CreateSprite("credits");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            m_credits.Add(sprite);
            AddChild(sprite);

            // TeamQ badge.
            sprite = CreateSprite("teamq");
            sprite.PositionPercent = new Vector2(0.5f, 0.225f);
            sprite.Visible = false;
            m_credits.Add(sprite);
            AddChild(sprite);

            sprite = CreateSprite("programmers");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            m_credits.Add(sprite);
            AddChild(sprite);

            sprite = CreateSprite("programmer_names");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            m_credits.Add(sprite);
            AddChild(sprite);

            sprite = CreateSprite("art_sound");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            m_credits.Add(sprite);
            AddChild(sprite);

            sprite = CreateSprite("kayu");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            m_credits.Add(sprite);
            AddChild(sprite);

            sprite = CreateSprite("special_thanks");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            m_credits.Add(sprite);
            AddChild(sprite);

            sprite = CreateSprite("special");
            sprite.Visible = false;
            sprite.PositionPercent = new Vector2(0.5f, 0.5f);
            m_credits.Add(sprite);
            AddChild(sprite);

            // Credits return button.
            Widget creditsReturn = new Widget(this);
            creditsReturn.Visible = false;
            creditsReturn.CreateButton(new Rectangle(0, 0, 5000, 5000));
            creditsReturn.Zindex = 0.1f;
            creditsReturn.PositionPercent = new Vector2(0.0f, 0.0f);
            creditsReturn.OnActivate += () => {
                HideCredits();
            };
            m_credits.Add(creditsReturn);
            AddChild(creditsReturn);
        }