C# Monogame/XNA:颜色显示不正确。奇怪的混合和不同的几乎每次执行

C# Monogame/XNA:颜色显示不正确。奇怪的混合和不同的几乎每次执行,c#,colors,xna,monogame,blending,C#,Colors,Xna,Monogame,Blending,我试图搜索这个问题几个小时,但没有找到任何解决方案。 下面是: 我开始编写一个类似口袋妖怪的RPG游戏,其中包括healthbars 对于healthbars,我使用以下代码: publicsvoiddraw(游戏时间游戏时间) { spriteBatch.Draw(像素,新矩形((int)hpBarPosition.X-2,(int)hpBarPosition.Y-2,monstar.HPBase+4,hpBarHeight+4),Color.Black); spriteBatch.Draw(

我试图搜索这个问题几个小时,但没有找到任何解决方案。
下面是:
我开始编写一个类似口袋妖怪的RPG游戏,其中包括healthbars

对于healthbars,我使用以下代码:

publicsvoiddraw(游戏时间游戏时间)
{
spriteBatch.Draw(像素,新矩形((int)hpBarPosition.X-2,(int)hpBarPosition.Y-2,monstar.HPBase+4,hpBarHeight+4),Color.Black);
spriteBatch.Draw(像素,新矩形((int)hpBarPosition.X,(int)hpBarPosition.Y,monstar.HPCurrent,hpBarHeight),Color.Green);
}
相关变量解释如下:

  • monstar.HPBase
    HPCurrent
    只是像300这样的int值
  • hpBarPosition
    已初始化
    Vector2 hpBarPosition=新的Vector2(350180)
  • hpBarHeight
    为10
  • pixel
    在我的HPBar类的构造函数中初始化为
    pixel=新纹理2d(spriteBatch.GraphicsDevice,1,1)
  • spriteBatch
    与我的主课相同。(其刚作为参数传递)
  • 图形设备.Clear(Color.Indigo)之间的主类的
    Draw
    -方法中调用
    Draw
    -方法;spriteBatch.Begin()和a
    spriteBatch.End()
顺便说一句,我的类不是从
DrawableGameComponent
继承的。我只是在主类的Draw方法中调用我自己编写的
Draw
方法

现在我希望有一个黑条,上面有一个稍小的绿条,这样黑条就可以作为绿条的边界。然而,黑色根本没有出现。绿色条是绿色和靛蓝的混合,这是一种深蓝色的绿色,类似于卡德蓝。但情况并非总是这样。有时我会看到黑色的条带和深绿色的条带,但很少像预期的那样

我使用的是Windows7上VisualStudio2012的最新单游戏版本。除healthbar外,所有其他纹理(如角色、怪物、背景砖)都会正确显示

知道问题出在哪里吗?

提前感谢。

可能您的纹理没有正确初始化?创建后,尝试使用pixel.SetData()将其设置为纯白色。哇。成功了!我认为它将默认为白色,所以我不需要再进一步触摸它。非常感谢!如果它不是白色的,有255个Alpha,那么它是什么?可能是随机垃圾,这可以解释为什么每次运行它时它都是不同的。