本節書摘來自異步社群《python和pygame遊戲開發指南》一書中的第2章,第2.10節,作者[美]al sweigart(斯維加特), 李強 譯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
光線有3種主要的顔色:紅色、綠色和藍色(紅色、藍色和黃色是繪畫和顔料的主要顔色,但是計算機顯示器使用光,而不是顔料)。通過将這3種顔色的不同的量組合起來,可以形成任何其他的顔色。在pygame中,我們使用3個整數的元組來表示顔色。元組中的第1個值,表示顔色中有多少紅色。為0的整數值表示該顔色中沒有紅色,而255表示該顔色中的紅色達到最大值。第2個值表示綠色,而第3個值表示藍色。這些用來表示一種顔色的3個整數的元組,通常稱為rgb值(rgb value)。
由于我們可以針對3種主要的顔色使用0~255的任何組合,這就意味着pygame可以繪制16 777 216 種不同的顔色,即256×256×256種顔色。然而,如果試圖使用大于255的值或者負值,将會得到類似“valueerror: invalid color argument”的一個錯誤。
例如,我們建立元組(0, 0, 0)并且将其存儲到一個名為black的變量中。沒有紅色、綠色和藍色的顔色量,最終的顔色是完全的黑色。黑色就是任何顔色都沒有。元組(255, 255, 255)表示紅色、綠色和藍色都達到最大量,這最終得到白色。白色是紅色、綠色和藍色的完全的組合。元組(255, 0, 0)表示紅色達到最大量,而沒有綠色和藍色,是以,最終的顔色是紅色。類似的,(0, 255, 0)是綠色,而(0, 0, 255)是藍色。
可以組合紅色、綠色和藍色的量來形成其他的顔色。表2-1列出了幾種常見的顔色的rgb值。
