2017-08-28 7 views
0

Essayer de créer un jeu XNA, mais je suis tombé sur un problème que je ne peux pas sembler figurer dehors.éléments de menu XNA transparent

Ce que je suis en train de faire est de dessiner un menu en haut de l'écran, et il apparaît. Mais j'ai un problème étrange. Tous les éléments du menu sont en alpha, même si le seul endroit où je spécifie quelque chose comme alpha est l'arrière-plan du menu, y a-t-il quelque chose d'évident qui me manque ici?

enter image description here

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

classe rect:

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

J'ai essayé de créer une nouvelle couleur sans alpha, mais j'obtenir les mêmes résultats.

+0

Cette police que vous utilisez, peut-être beacuse Redimensionner l'image, mais le texte ressemble à '' Öptions' et Člose' ... –

Répondre

2

I figured it out! A dû se déplacer

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

En dehors de la boucle.