Элементы меню Xna прозрачны

Пытаюсь создать игру в Xna, но столкнулся с проблемой, которую не могу понять.

Что я пытаюсь сделать, так это нарисовать меню в верхней части экрана, и оно появится. Но у меня странная проблема. Все элементы меню являются альфа-версиями, хотя единственное место, где я указываю альфа-версию, — это фон меню, есть ли что-то очевидное, что я здесь упускаю?

введите здесь описание изображения

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);
        }

Я попытался создать новый цвет без альфы, но получил тот же результат.


person darahz    schedule 28.08.2017    source источник
comment
Этот шрифт, который вы используете, может быть, из-за изменения размера изображения, но текст выглядит как Öptions и Člose ...   -  person Davor Mlinaric    schedule 04.09.2017


Ответы (1)


Я понял! Пришлось двигаться

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

Вне петли.

person darahz    schedule 28.08.2017