示例#1
0
        private void InitializeDeckPage()
        {
            var curve = GameApp.Service<ResourceManager>().Acquire<Curve>("Curves/CardMove");
            var candFmtOptions = new Graphics.TextRenderer.FormatOptions(new Graphics.TextRenderer.FontDescriptor("Microsoft YaHei", 11));

            var resourceMgr = GameApp.Service<ResourceManager>();
            var buttonTexture = resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$Button");
            Graphics.TexturedQuad m_buttonFace = new Graphics.TexturedQuad(buttonTexture);
            TextRenderer.IFormattedText textReturnButton = GameApp.Service<TextRenderer>().FormatText("<<返回", m_textFormatOptions);
            var btnReturn = new UI.Button()
            {
                Dispatcher = Root,
                ButtonText = textReturnButton,
                TextColor = Color.White,
                Transform = MatrixHelper.Translate(40, 20),
                NormalFace = m_buttonFace
            };
            if (m_isFirstLoaded)
            {
                btnReturn.MouseButton1Down += delegate(object sender, UI.MouseEventArgs e)
                {
                    Root.Dispatcher = null;
                    GameApp.Service<MenuUI>().Startup();
                };
                m_isFirstLoaded = false;
            }
        }
示例#2
0
        public void OnRender(RenderEventArgs e)
        {
            var transform = TransformToGlobal;

            Graphics.TexturedQuad quadOverlay = new Graphics.TexturedQuad();
            quadOverlay.ColorToModulate = Color;
            e.RenderManager.Draw(quadOverlay, Region, transform);
        }
        private void InitializeContextButton()
        {
            var device = GameApp.Instance.GraphicsDevice;
            var content = GameApp.Instance.Content;

            var resourceMgr = GameApp.Service<ResourceManager>();
            var buttonTexture = resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$Button");
            m_buttonFace = new Graphics.TexturedQuad(buttonTexture);

            var font = new Graphics.TextRenderer.FontDescriptor("DFKai-SB", 16);
            m_buttonTextFormatOptions = new Graphics.TextRenderer.FormatOptions(font);
        }
示例#4
0
        public Highlight(CardControl control) : base(control)
        {
            Control.Style.RegisterBinding(this);

            m_quadHighlight = new Graphics.TexturedQuad(GameApp.Service<Resources>().CardHighlight);
            m_quadHighlight.BlendState = new BlendState { ColorSourceBlend = Blend.SourceAlpha, ColorDestinationBlend = Blend.One };

            m_borderBlinkTrack = new Animation.CurveTrack(GameApp.Service<Resources>().CardFloat);
            m_borderBlinkTrack.Loop = true;
            m_borderBlinkTrack.Play();

            m_enlargeTrack = new Animation.CurveTrack(GameApp.Service<Resources>().CardEnlarge);
        }
示例#5
0
        private void InitializePage()
        {
            var resourceMgr = GameApp.Service<ResourceManager>();
            var buttonTexture = resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$Button");
            Graphics.TexturedQuad m_buttonFace = new Graphics.TexturedQuad(buttonTexture);

            TextRenderer.IFormattedText textLoginButton = GameApp.Service<TextRenderer>().FormatText("随机对战", m_textFormatOptions);
            var btnLogin = new UI.Button()
            {
                Dispatcher = Root,
                ButtonText = textLoginButton,
                TextColor = Color.White,
                Transform = MatrixHelper.Translate(300, 350),
                NormalFace = m_buttonFace
            };
            btnLogin.MouseButton1Down += new EventHandler<UI.MouseEventArgs>(btnLogin_MouseButton1Down);
        }
        public SelectorHighlight(CardControl control, IControlUI ui)
            : base(control)
        {
            m_ui = ui;

            m_quadHighlight = new Graphics.TexturedQuad(GameApp.Service<Highlight.Resources>().CardHighlight);
            m_quadHighlight.BlendState = new BlendState
            {
                ColorSourceBlend = Blend.SourceAlpha,
                ColorDestinationBlend = Blend.One,
                AlphaBlendFunction = BlendFunction.Max,
                AlphaSourceBlend = Blend.One,
                AlphaDestinationBlend = Blend.One
            };

            m_borderBlinkTrack = new Animation.CurveTrack(GameApp.Service<Highlight.Resources>().CardFloat);
            m_borderBlinkTrack.Loop = true;
            m_borderBlinkTrack.Play();
        }
示例#7
0
        public SpellButtons(CardControl control) : base(control)
        {
            // TODO: spell button shall be stylized from cardcontrol's style
            const int IntervalV = 10;

            m_buttonFaceTexture = GameApp.Service<Services.ResourceManager>().Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$Button");
            var buttonFace = new Graphics.TexturedQuad(m_buttonFaceTexture);
            var font = new Graphics.TextRenderer.FontDescriptor("Segoe UI", 16);

            int y = 0;
            foreach (var spell in Card.Spells)
            {
                y -= m_buttonFaceTexture.Height + IntervalV;

                var btn = new Button
                {
                    NormalFace = buttonFace,
                    ButtonText = GameApp.Service<Graphics.TextRenderer>().FormatText(spell.Model.Name, new Graphics.TextRenderer.FormatOptions(font))
                };
                btn.Transform = MatrixHelper.Translate(-m_buttonFaceTexture.Width / 2, y);
                btn.MouseButton1Up += new EventHandler<MouseEventArgs>(SpellButton_MouseButton1Up);
                btn.Dispatcher = m_spellButtonContainer;
                m_spellButtons.Add(btn);
            }
 
            m_fadeInOutTrack.Elapsed += w =>
            {
                foreach (var button in Buttons)
                {
                    var clr = new Color(1.0f, 1.0f, 1.0f, w);
                    button.NormalFace.ColorToModulate = clr;
                    button.TextColor = clr;
                }
                if (w == 0.0f)
                {
                    m_spellButtonContainer.Dispatcher = null;
                }
            };
        }
示例#8
0
        public NumberSelector(TextRenderer.IFormattedText[] digits, TextRenderer.IFormattedText[] signs, Graphics.TexturedQuad upButtonFace, Graphics.TexturedQuad downButtonFace,
            Graphics.TexturedQuad okCancelButtonFace, TextRenderer.IFormattedText[] okCancelTexts)
        {
            if (digits == null)
            {
                throw new ArgumentNullException("digits");
            }
            else if (digits.Length != 10 || digits.Contains(null))
            {
                throw new ArgumentException("Digits array is not provided appropriately.");
            }
            else if (signs == null)
            {
                throw new ArgumentNullException("signs");
            }
            else if (signs.Length != 2 || signs.Contains(null))
            {
                throw new ArgumentException("Signs array is not provided appropriately.");
            }
            else if (upButtonFace == null)
            {
                throw new ArgumentNullException("upButtonFace");
            }
            else if (downButtonFace == null)
            {
                throw new ArgumentNullException("downButtonFace");
            }
            else if (okCancelTexts == null)
            {
                throw new ArgumentNullException("okCancelTexts");
            }
            else if (okCancelTexts.Length != NumButtons || okCancelTexts.Contains(null))
            {
                throw new ArgumentException("OkCancelTexts array is not provided appropriately.");
            }

            m_digits = digits;
            m_signs = signs;
            m_upButtonFace = upButtonFace;
            m_downButtonFace = downButtonFace;

            var buttonTexts = new TextRenderer.IFormattedText[CommonButtons.NumButtons];
            buttonTexts[CommonButtons.ButtonOK] = okCancelTexts[ButtonOK];
            buttonTexts[CommonButtons.ButtonCancel] = okCancelTexts[ButtonCancel];
            m_commonButtons = new CommonButtons(okCancelButtonFace, buttonTexts);
            m_commonButtons.Dispatcher = this;
            m_commonButtons.ButtonClicked += btn =>
            {
                if (ButtonClicked != null)
                {
                    ButtonClicked(btn, CurrentValue);
                }
            };
            m_renderableProxy = new RenderableProxy(this);

            SetRange(0, 1);
        }
示例#9
0
        private void InitializeLoginPage()
        {
            var curve = GameApp.Service<ResourceManager>().Acquire<Curve>("Curves/CardMove");
            var candFmtOptions = new Graphics.TextRenderer.FormatOptions(new Graphics.TextRenderer.FontDescriptor("Microsoft YaHei", 11));

            m_txtUserName = new UI.TextBox(100, 30, m_textFormatOptions, candFmtOptions)
            {
                ForeColor = Color.Red,
                SelectionBackColor = new Color(255, 0, 0, 0.75f),
                SlidingCurve = curve,
                Transform = MatrixHelper.Translate(462, 200),
                Dispatcher = Root
            };

            m_txtPassword = new UI.TextBox(100, 30, m_textFormatOptions, candFmtOptions)
            {
                ForeColor = Color.Red,
                SelectionBackColor = new Color(255, 0, 0, 0.75f),
                PasswordChar = '*',
                SlidingCurve = curve,
                Transform = MatrixHelper.Translate(462, 250),
                Dispatcher = Root,
            };

            TextRenderer.IFormattedText textUserName = GameApp.Service<TextRenderer>().FormatText("用户名: ", m_textFormatOptions);
            var lblUserName = new UI.Label()
            {
                TextColor = Color.Red,
                Dispatcher = Root,
                FormattedText = textUserName,
                Transform = MatrixHelper.Translate(350, 200)
            };
            TextRenderer.IFormattedText textPassword = GameApp.Service<TextRenderer>().FormatText("密码: ", m_textFormatOptions);
            var lblPassword = new UI.Label()
            {
                TextColor = Color.Red,
                Dispatcher = Root,
                FormattedText = textPassword,
                Transform = MatrixHelper.Translate(350, 250)
            };
            TextRenderer.IFormattedText textMessage = GameApp.Service<TextRenderer>().FormatText(string.Empty, m_textFormatOptions);
            m_lblMessage = new UI.Label()
            {
                TextColor = Color.Red,
                Dispatcher = Root,
                FormattedText = textMessage,
                Transform = MatrixHelper.Translate(350, 300)
            };

            var resourceMgr = GameApp.Service<ResourceManager>();
            var buttonTexture = resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$Button");
            Graphics.TexturedQuad m_buttonFace = new Graphics.TexturedQuad(buttonTexture);

            TextRenderer.IFormattedText textLoginButton = GameApp.Service<TextRenderer>().FormatText("登录", m_textFormatOptions);
            var btnLogin = new UI.Button()
            {
                Dispatcher = Root,
                ButtonText = textLoginButton,
                TextColor = Color.White,
                Transform = MatrixHelper.Translate(300, 350),
                NormalFace = m_buttonFace
            };
            btnLogin.MouseButton1Down += new EventHandler<UI.MouseEventArgs>(btnLogin_MouseButton1Down);

            TextRenderer.IFormattedText textReturnButton = GameApp.Service<TextRenderer>().FormatText("返回", m_textFormatOptions);
            var btnReturn = new UI.Button()
            {
                Dispatcher = Root,
                ButtonText = textReturnButton,
                TextColor = Color.White,
                Transform = MatrixHelper.Translate(450, 350),
                NormalFace = m_buttonFace
            };
            btnReturn.MouseButton1Down += delegate(object sender, UI.MouseEventArgs e)
            {
                Root.Dispatcher = null;
                GameApp.Service<MenuUI>().Startup();
            };

            TextRenderer.IFormattedText textRegister = GameApp.Service<TextRenderer>().FormatText("注册", m_textFormatOptions);
            var btnRegister = new UI.Button()
            {
                Dispatcher = Root,
                ButtonText = textRegister,
                TextColor = Color.White,
                Transform = MatrixHelper.Translate(600, 350),
                NormalFace = m_buttonFace
            };
            btnRegister.MouseButton1Down += delegate(object sender, UI.MouseEventArgs e)
            {
                System.Diagnostics.Process.Start("http://touhouspring.com");
            };
        }
示例#10
0
        internal void GameCreated()
        {
            float vw = GameApp.Instance.GraphicsDevice.Viewport.Width;
            float vh = GameApp.Instance.GraphicsDevice.Viewport.Height;

            m_toScreenSpace = Matrix.Identity;
            m_toScreenSpace.M11 = 2.0f / vw;
            m_toScreenSpace.M22 = -2.0f / vh;
            m_toScreenSpace.M41 = -1.0f;
            m_toScreenSpace.M42 = 1.0f;

            var resourceMgr = GameApp.Service<Services.ResourceManager>();
            m_backgroundImage = new TexturedQuad(resourceMgr.Acquire<VirtualTexture>("Textures/Scene2"));
            m_beamMeUp = new Particle.ParticleSystemInstance(resourceMgr.Acquire<Particle.ParticleSystem>("Particles/BeamMeUp"));
            m_loaded = true;

            m_currentEnvImageIndex = 0;
            m_envImages[m_currentEnvImageIndex] = m_backgroundImage;
        }
示例#11
0
        public CommonButtons(Graphics.TexturedQuad buttonFace, TextRenderer.IFormattedText[] buttonTexts)
        {
            if (buttonFace == null)
            {
                throw new ArgumentNullException("buttonFace");
            }
            else if (buttonTexts == null)
            {
                throw new ArgumentNullException("buttonTexts");
            }
            else if (buttonTexts.Length != 4 || buttonTexts.All(txt => txt == null))
            {
                throw new ArgumentException("ButtonTexts array is not provided appropriately.");
            }

            m_buttonFace = buttonFace;
            m_buttonTexts = buttonTexts;

            CreateButtons();
        }
示例#12
0
 public Glow(CardControl control) : base(control)
 {
     m_quadGlow = new Graphics.TexturedQuad(GameApp.Service<Resources>().CardGlow);
     m_quadGlow.BlendState = BlendState.AlphaBlend;
 }
示例#13
0
        public override void Startup()
        {
            var device = GameApp.Instance.GraphicsDevice;
            var resourceMgr = GameApp.Service<ResourceManager>();

            m_buttonFace = new Graphics.TexturedQuad(resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$Button"));
            m_buttonFaceDisabled = new Graphics.TexturedQuad(resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$ButtonDisable"));

            var buttonFmtOptions = new TextRenderer.FormatOptions(new TextRenderer.FontDescriptor("Microsoft YaHei", 16));
            m_buttonTexts[MessageBox.ButtonOK] = GameApp.Service<TextRenderer>().FormatText("确定", buttonFmtOptions);
            m_buttonTexts[MessageBox.ButtonCancel] = GameApp.Service<TextRenderer>().FormatText("取消", buttonFmtOptions);
            m_buttonTexts[MessageBox.ButtonYes] = GameApp.Service<TextRenderer>().FormatText("是", buttonFmtOptions);
            m_buttonTexts[MessageBox.ButtonNo] = GameApp.Service<TextRenderer>().FormatText("否", buttonFmtOptions);

            var digitFmtOptions = new TextRenderer.FormatOptions(new TextRenderer.FontDescriptor("Constantia", 36));
            10.Repeat(i => m_digits[i] = GameApp.Service<TextRenderer>().FormatText(i.ToString(), digitFmtOptions));
            m_signs[0] = GameApp.Service<TextRenderer>().FormatText("+", digitFmtOptions);
            m_signs[1] = GameApp.Service<TextRenderer>().FormatText("-", digitFmtOptions);
            m_okCancelTexts[NumberSelector.ButtonOK] = GameApp.Service<TextRenderer>().FormatText("确定", buttonFmtOptions);
            m_okCancelTexts[NumberSelector.ButtonCancel] = GameApp.Service<TextRenderer>().FormatText("取消", buttonFmtOptions);
            m_upButtonFace = new Graphics.TexturedQuad(resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$Up"));
            m_downButtonFace = new Graphics.TexturedQuad(resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$Down"));

            m_leftButtonFace = new Graphics.TexturedQuad(resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$LeftArrow"));
            m_rightButtonFace = new Graphics.TexturedQuad(resourceMgr.Acquire<Graphics.VirtualTexture>("atlas:Textures/UI/InGame/Atlas0$RightArrow"));

            m_msgFont = new TextRenderer.FontDescriptor("Microsoft YaHei", 32);
        }
示例#14
0
        void ImageProperty.IHost.SetTexture(string imageUri, BlendState blendState)
        {
            if (TypedTarget.Quads.Count > 0 && imageUri == m_imageUri)
            {
                TypedTarget.Quads[0].TextureQuad.BlendState = blendState;
                return;
            }

            IResourceContainer resourceContainer = null;
            for (var t = Target; t != null; t = t.Dispatcher)
            {
                if (t is IResourceContainer)
                {
                    resourceContainer = t as IResourceContainer;
                    break;
                }
            }

            if (TypedTarget.Quads.Count > 0)
            {
                if (resourceContainer != null)
                {
                    resourceContainer.Release(TypedTarget.Quads[0].TextureQuad.Texture);
                }
                TypedTarget.Quads.Clear();
            }

            var texture = GameApp.Service<Services.ResourceManager>().Acquire<Graphics.VirtualTexture>(imageUri);
            if (resourceContainer != null)
            {
                resourceContainer.Register(texture);
            }
            var texQuad = new Graphics.TexturedQuad(texture) { BlendState = blendState };
            texQuad.Flags |= Graphics.TextureQuadFlags.SharpLod;
            TypedTarget.Quads.Add(new ComposedImage.Quad { TextureQuad = texQuad });
            m_imageUri = imageUri;
        }
示例#15
0
 public void Initialize()
 {
     Region = new Rectangle(-IconSize / 2, 0, IconSize, IconSize);
     var texture = GameApp.Service<Services.ResourceManager>().Acquire<Graphics.VirtualTexture>(CounterData.IconUri);
     m_icon = new Graphics.TexturedQuad(texture);
 }