SDL中的颜色非常奇怪

时间:2011-07-21 20:33:17

标签: c# colors sdl.net

我正在SDL.NET中创建一个程序,我需要绘制一个填充多边形。我认为重复多边形表面而不是每次我需要绘制时重建它可能会很好,所以我像这样制作表面,然后将它保存到字典中:

polySur = Video.Screen.CreateCompatibleSurface(70, 70, true);
polySur.TransparentColor = Color.Magenta;
polySur.Fill(Color.Magenta);
polySur.Transparent = true;
poly.Draw(polySur, Color.LightGreen, false, true);

poly是我事先创建的Polygon对象。

您可能会认为当表面与屏幕相连时,这会绘制浅绿色多边形;它没有。生成的多边形是青色的!我通过实验发现,如果我用Color.FromArgb制作一个颜色,R通道变为红色,G通道变为青色,B通道变为黑色。

但是,如果我将Draw调用中的第二个布尔值设置为false(禁用填充),我会得到一个浅绿色轮廓。显然,填充操作会导致颜色变得混乱。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是一个错误:http://sourceforge.net/tracker/index.php?func=detail&aid=3127181&group_id=52340&atid=466516

  

Polygon的第196行使用颜色RGG来填充而不是RGB。这使得无法获得蓝色,并且倾向于着色除红色之外的任何颜色。

令人沮丧,是的。特别是当你的游戏取决于能够绘制多边形时。