// Create text area for SkyX parameters private void _createTextArea() { // Create a panel OverlayContainer panel = (OverlayContainer)OverlayManager.Singleton.CreateOverlayElement("Panel", "SkyXParametersPanel"); panel.MetricsMode = GuiMetricsMode.GMM_PIXELS; panel.SetPosition(10, 10); panel.SetDimensions(400, 400); // Create a text area _textArea = OverlayManager.Singleton.CreateOverlayElement("TextArea", "SkyXParametersTextArea"); _textArea.MetricsMode = GuiMetricsMode.GMM_PIXELS; _textArea.SetPosition(0, 0); _textArea.SetDimensions(100, 100); // _textArea.Text = "MogreLib SkyX plugin demo"; _textArea._setHeight(16); //_textArea.FontName = "BlueHighway"; // _textArea.ColorBottom = new ColorEx(0.3f, 0.5f, 0.3f); //_textArea.ColorTop = new ColorEx(0.5f, 0.7f, 0.5f); // Create an overlay, and add the panel Overlay overlay = OverlayManager.Singleton.Create("OverlayName"); overlay.Add2D(panel); // Add the text area to the panel panel.AddChild(_textArea); // Show the overlay overlay.Show(); }
public static void AlignTextAreaHorzRight(OverlayElement textArea, Viewport viewport, float rMargin) { string fontName = textArea.GetParameter("font_name"); Font font = (Font)(FontManager.Singleton.GetByName(fontName).Target); Vector2 dim = ViewHelper.GetTextDimensions(textArea.Caption, font, viewport); textArea.SetPosition((1 - dim.x) - rMargin, textArea.Top); }
/// <summary> /// This method updates the interface /// </summary> /// <param name="evt"></param> public override void Update(FrameEvent evt) { base.Update(evt); Animate(evt); ConvertTime(2); if (lives.Count > characterStats.Lives.Value && characterStats.Lives.Value >= 0) { SceneNode life = lives[lives.Count - 1]; RemoveAndDestroyLife(life); } if (lives.Count < characterStats.Lives.Value) { AddHeart(characterStats.Lives.Value); } if (characterStats.Lives.Value == 0) { gameOverText.Caption = gameOver; gameOverText.SetPosition(400, 300); Dispose(); } healthBar.Width = hRatio * characterStats.Health.Value; //healthBarText.Caption = health; long timeNew = timeExtra - time.Milliseconds; if (timeExtra < 5000) { gameOverText.Caption = gameOver; gameOverText.SetPosition(300, 300); Dispose(); } string timeT = ConvertTime(timeNew); shieldBar.Width = sRatio * characterStats.Shield.Value; scoreText.Caption = score + ((PlayerStats)characterStats).Score.Value; timeText.Caption = timeT; }
public OverlayContainer createOverlay(String N, Vector2 P, Vector2 D, String M, String C, bool A, Overlay target) { String t = "Panel"; if (C != "") { t = "TextArea"; } OverlayElement e = OverlayManager.Singleton.CreateOverlayElement(t, N + this.name + DateTime.Now.Ticks); e.MetricsMode = GuiMetricsMode.GMM_PIXELS; e.SetDimensions(D.x, D.y); e.SetPosition(0, 0); //if (M != "") // e.MaterialName = M; if (C != "") { if (A) { e.Top = OVERLAY_TITLE_MARGIN; e.Left = OVERLAY_TITLE_MARGIN; } e.Caption = C; e.SetParameter("font_name", mFont); e.SetParameter("char_height", StringConverter.ToString(mFontSize)); } OverlayContainer c = (OverlayContainer) OverlayManager.Singleton.CreateOverlayElement("Panel", name + "ContainerHack" + (oc++).ToString()); c.MetricsMode = GuiMetricsMode.GMM_PIXELS; c.SetDimensions(D.x, D.y); c.SetPosition(P.x, P.y); if (M != "") { c.MaterialName = M; } c.AddChild(e); if (A) { target.Add2D(c); c.Show(); } return(c); }
public static void ConfigureElement(OverlayElement element, int width, int height, String caption, String fontName) { element.SetDimensions(100, 50); element.MetricsMode = GuiMetricsMode.GMM_PIXELS; element.SetDimensions(width, height); element.SetPosition(0, 0); element.SetParameter("font_name", fontName); int fontSize = 13; if (LanguageManager.ActualLanguageCode.Equals("zh-TW")) { fontSize = 15; } element.SetParameter("char_height", fontSize.ToString()); element.SetParameter("colour_top", MessageEntry.DefaultColourTopString); element.SetParameter("colour_bottom", MessageEntry.DefaultColourBottomString); //element.SetParameter("colour_top", "0.0 0.0 0.0"); // element.SetParameter("colour_bottom", "0.0 0.0 0.0"); element.Caption = caption; }
// Create text area for SkyX parameters private void _createTextArea() { // Create a panel OverlayContainer panel = (OverlayContainer)OverlayManager.Singleton.CreateOverlayElement("Panel", "SkyXParametersPanel"); panel.MetricsMode = GuiMetricsMode.GMM_PIXELS; panel.SetPosition(10, 10); panel.SetDimensions(400, 400); // Create a text area _textArea = OverlayManager.Singleton.CreateOverlayElement("TextArea", "SkyXParametersTextArea"); _textArea.MetricsMode = GuiMetricsMode.GMM_PIXELS; _textArea.SetPosition(0, 0); _textArea.SetDimensions(100, 100); // _textArea.Text = "MogreLib SkyX plugin demo"; _textArea._setHeight(16); //_textArea.FontName = "BlueHighway"; // _textArea.ColorBottom = new ColorEx(0.3f, 0.5f, 0.3f); //_textArea.ColorTop = new ColorEx(0.5f, 0.7f, 0.5f); // Create an overlay, and add the panel Overlay overlay = OverlayManager.Singleton.Create("OverlayName"); overlay.Add2D(panel); // Add the text area to the panel panel.AddChild(_textArea); // Show the overlay overlay.Show(); }
protected virtual void AdjustTrays() { for (var i = 0; i < 9; i++) // resizes and hides trays if necessary { float trayWidth = 0; float trayHeight = _widgetPadding; var labelsAndSeps = new List <OverlayElement>(); if (_widgets[i] == null || _widgets[i].Count == 0) // hide tray if empty { _trays[i].Hide(); continue; } else { _trays[i].Show(); } // arrange widgets and calculate final tray size and position for (int j = 0; j < _widgets[i].Count; j++) { OverlayElement e = _widgets[i][j].OverlayElement; if (j != 0) { trayHeight += _widgetSpacing; // don't space first widget } e.VerticalAlignment = GuiVerticalAlignment.GVA_TOP; e.Top = trayHeight; switch (e.HorizontalAlignment) { case GuiHorizontalAlignment.GHA_LEFT: e.Left = _widgetPadding; break; case GuiHorizontalAlignment.GHA_RIGHT: e.Left = -(e.Width + _widgetPadding); break; default: e.Left = -(e.Width / 2); break; } // prevents some weird texture filtering problems (just some) e.SetPosition((int)e.Left, (int)e.Top); e.SetDimensions((int)e.Width, (int)e.Height); trayHeight += e.Height; Label label = _widgets[i][j] as Label; if (label != null && label.IsFitToTray()) { labelsAndSeps.Add(e); continue; } //Separator* s = dynamic_cast<Separator*>(mWidgets[i][j]); //if (s && s->_isFitToTray()) //{ // labelsAndSeps.Add(e); // continue; //} if (e.Width > trayWidth) { trayWidth = e.Width; } } // add paddings and resize trays _trays[i].Width = trayWidth + 2 * _widgetPadding; _trays[i].Height = trayHeight + _widgetPadding; for (var j = 0; j < labelsAndSeps.Count; j++) { labelsAndSeps[j].Width = (int)trayWidth; labelsAndSeps[j].Left = -(int)(trayWidth / 2); } } for (var i = 0; i < 9; i++) // snap trays to anchors { if (i == (int)TrayLocation.TopLeft || i == (int)TrayLocation.Left || i == (int)TrayLocation.BottomLeft) { _trays[i].Left = _trayPadding; } if (i == (int)TrayLocation.Top || i == (int)TrayLocation.Center || i == (int)TrayLocation.Bottom) { _trays[i].Left = -_trays[i].Width / 2; } if (i == (int)TrayLocation.TopRight || i == (int)TrayLocation.Right || i == (int)TrayLocation.BottomRight) { _trays[i].Left = -(_trays[i].Width + _trayPadding); } if (i == (int)TrayLocation.TopLeft || i == (int)TrayLocation.Top || i == (int)TrayLocation.TopRight) { _trays[i].Top = _trayPadding; } if (i == (int)TrayLocation.Left || i == (int)TrayLocation.Center || i == (int)TrayLocation.Right) { _trays[i].Top = -(_trays[i].Height / 2); } if (i == (int)TrayLocation.BottomLeft || i == (int)TrayLocation.Bottom || i == (int)TrayLocation.BottomRight) { _trays[i].Top = -(_trays[i].Height - _trayPadding); } // prevents some weird texture filtering problems (just some) _trays[i].SetPosition((int)_trays[i].Left, (int)_trays[i].Top); _trays[i].SetDimensions((int)_trays[i].Width, (int)_trays[i].Height); } }
private void PrepareMessage() { messageElement.Hide(); // icon uint iconFrames = 1; float iconAnimationDuration = 1.0f; string changedIcon = null; if (currentMessage is IconedMessageEntry) { string icon = (currentMessage as IconedMessageEntry).Icon; Vector2 dim = (currentMessage as IconedMessageEntry).CustomIconDimensions; iconFrames = (currentMessage as IconedMessageEntry).IconFrames; iconAnimationDuration = (currentMessage as IconedMessageEntry).IconAnimationDuration; if (lastIconTexture != icon) { lastIconTexture = icon; changedIcon = icon; if (!dim.IsZeroLength) { iconElement.Width = dim.x; iconElement.Height = dim.y; } else { iconElement.Width = iconDefaultDimesions.x; iconElement.Height = iconDefaultDimesions.y; } } } else if (lastIconTexture != null) { changedIcon = "radio.png"; lastIconTexture = null; iconElement.Width = iconDefaultDimesions.x; iconElement.Height = iconDefaultDimesions.y; } if (changedIcon != null) { try { MaterialPtr mat = MaterialManager.Singleton.GetByName("MessageBarIcon"); if (iconFrames > 1) { mat.GetBestTechnique().GetPass(0).GetTextureUnitState(0).SetAnimatedTextureName(changedIcon, iconFrames, iconAnimationDuration); // mat.GetBestTechnique().GetPass(0).GetTextureUnitState(0).SetTextureName(null); } else { // mat.GetBestTechnique().GetPass(0).GetTextureUnitState(0).SetAnimatedTextureName(null, 1); mat.GetBestTechnique().GetPass(0).GetTextureUnitState(0).SetTextureName(changedIcon); } } catch (Exception) { } } currentMessage.IncreaseX(XMargin); currentMessage.IncreaseY(YMargin); iconOverlay.Hide(); if (!iconOverlay.IsVisible) { float iconYPos = currentMessage.Y - iconElement.Height * 0.5f; // ikonka w jedym poziomie z tekstem if (iconYPos <= yMargin) { iconYPos = currentMessage.Y + currentMessage.CharHeight * 0.25f; // przyklej ikonke do rogu ekranu } iconElement.SetPosition((currentMessage.X), iconYPos); } messageContainer.SetPosition(iconElement.Width + currentMessage.X, currentMessage.Y); messageElement.SetParameter("char_height", currentMessage.getCharHeightString()); messageElement.SetParameter("colour_top", currentMessage.ColourTopString); messageElement.SetParameter("colour_bottom", currentMessage.ColourBottomString); messageElement.Caption = currentMessage.GetMessageAdjustedByContainerWidth(mainViewport.ActualWidth * 0.8f, OverlayManager.Singleton.ViewportHeight); // messageElement.Caption = AbstractScreen.Wrap(currentMessage.Message, currentMessage.CharsPerLine); ; }