示例#1
0
        // 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();
        }
示例#2
0
        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);
        }
示例#3
0
        /// <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;
        }
示例#4
0
        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);
        }
示例#5
0
        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;
        }
示例#6
0
        // 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();
        }
示例#7
0
        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);
            }
        }
示例#8
0
        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); ;
        }