【问题标题】:Xna menu items transparentXna 菜单项透明
【发布时间】:2018-02-05 15:24:40
【问题描述】:

尝试在 Xna 中创建游戏,但我偶然发现了一个我似乎无法弄清楚的问题。

我要做的是在屏幕顶部绘制一个菜单,然后它就会显示出来。但我有一个奇怪的问题。 所有的菜单项都是 alpha,即使我指定的东西是 alpha 的唯一地方是菜单的背景,这里有什么明显的我遗漏的东西吗?

public static void draw(SpriteBatch sb,SpriteFont font,GraphicsDevice gd)
    {
        foreach (string item in menuItems)
        {
            MouseState ms = Mouse.GetState();
            rect.drawRectangle(gd, sb, new Rectangle(0, 0, gd.Viewport.Width, 35), new Color(0.25f, 0.25f, 0.25f, 0.6f));
            if((ms.X > startPos && ms.X < startPos + (int)font.MeasureString(item).X) && (ms.Y > 10 && ms.Y < 30))
            {
                if(ms.LeftButton != ButtonState.Pressed)
                {
                    sb.DrawString(font, item, new Vector2(startPos, 10), Color.Black);
                    sb.DrawString(font, item, new Vector2(startPos + 1, 11), Color.Gray);
                }else
                {
                    sb.DrawString(font, item, new Vector2(startPos, 10), Color.Black);
                    sb.DrawString(font, item, new Vector2(startPos + 1, 11), Color.DarkGray);
                }

            }
            else
            {
                sb.DrawString(font, item, new Vector2(startPos, 10), Color.Black);
                sb.DrawString(font, item, new Vector2(startPos + 1, 11), Color.White);
            }

            startPos += (10 + (int)font.MeasureString(item).X);
        }
        startPos = 10;
    }

矩形类:

public static void drawRectangle(GraphicsDevice graphics,SpriteBatch sb,Rectangle rect,Color color)
        {
            Texture2D pixel = new Texture2D(graphics, 1, 1);
            Color[] colorData = {color};
            pixel.SetData<Color>(colorData);
            sb.Draw(pixel, rect, color);
        }

我尝试创建一种没有 alpha 的新颜色,但得到了相同的结果。

【问题讨论】:

  • 您使用的字体,可能是因为图像调整大小,但文字看起来像 ÖptionsČlose ...

标签: c# menu xna background-color alpha


【解决方案1】:

我想通了! 不得不搬家

rect.drawRectangle(gd, sb, new Rectangle(0, 0, gd.Viewport.Width, 35), new Color(0.25f, 0.25f, 0.25f,0.6f));

在循环之外。

【讨论】:

    猜你喜欢
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2014-06-07
    • 2013-05-07
    • 2018-08-04
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多