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; } }
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); }
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); }
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(); }
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; } }; }
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); }
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"); }; }
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; }
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(); }
public Glow(CardControl control) : base(control) { m_quadGlow = new Graphics.TexturedQuad(GameApp.Service<Resources>().CardGlow); m_quadGlow.BlendState = BlendState.AlphaBlend; }
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); }
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; }
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); }