2011-07-21 42 views
1

我正在SDL.NET中製作一個程序,我需要繪製一個填充多邊形。我想這可能是很好的重用,而不是每一次我需要繪製時間改造它的多邊形面,所以我使表面像這樣,然後將其保存到一個字典算賬:SDL中的顏色表現得很怪異

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

polyPolygon我事先創建的對象。

您可能會認爲,當表面位於屏幕上時,會繪製淺綠色的多邊形;它沒有。生成的多邊形是青色!我通過實驗發現,如果我使用Color.FromArgb製作Color,則R通道變爲紅色,G通道變爲青色,B通道變爲黑色。

但是,如果我將Draw調用中的第二個布爾值設置爲false(禁用填充),則會獲得淺綠色輪廓。顯然,填充操作會導致顏色混亂。

任何想法?

回答