我在MonoDevelop上使用MonoGame在OS X上运行我的游戏项目,但游戏中的颜色非常混乱。例如,黄色显示为蓝色。可能是什么导致了这个?我的游戏是从XNA移植的。 Android和iOS端口没有这种颜色问题。
错误的颜色是所有颜色。应该显示的颜色反而显示为其他颜色。例如,黄色显示为蓝色,蓝色显示为橙色等。否则图形显示正确。
我只是将SpriteBatch直接用于缓冲区而不对其运行任何效果或后处理。我Begin()
的代码是:
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.LinearClamp, DepthStencilState.Default, RasterizerState.CullNone, null, SpriteScale);
当我绘制纹理时,我会像这样绘制它:
spriteBatch.Draw(texture, new Vector2(0f, 0f), Color.White);
我尝试用他们的.xnb替换所有.png文件并且游戏仍然运行,但我仍然得到相同的错误颜色。
我已经意识到BlendState.NonPremultiplied
不应该是正确的,但是当我没有设置它时,那么我会得到这些非常糟糕的轮廓和图像周围的白色块应该在那里。