2017-08-28 7 views
0

Xnaでゲームを作成しようとしていますが、私は把握できないような問題に遭遇しました。Xnaのメニュー項目が透明

私がやっていることは、画面上部にメニューを描画して表示することです。しかし、私は奇妙な問題を抱えています。 アルファベットを指定する唯一の場所はメニューの背景ですが、ここでは何も分かりません。

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

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

私はアルファなしで新しい色を作成しようとしましたが、私は同じ結果を得ます。

+0

あなたが使用しているフォントで、おそらくイメージのサイズを変更していますが、テキストは 'Öptions'と'Člose'のように見えます... –

答えて

2

私はそれを理解しました! 移動しなければならない

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

ループ外。

関連する問題