0

我正在尝试绘制一个 8 位风格的游戏角色(来自 Zelda 的链接),因为我正在练习 OpenGL。我从他的脸开始,也就是右边的大方块,然后画了他的眼睛,在他的脸开始的右边两个街区……(6个街区,最左边的2个是眼睛)

眼睛的顶部(绿色块上方的块)应该是深绿色(见代码),但它一直采用第一个较大块(脸)的颜色。

我希望这是有道理的......请看这张照片: 8 位字符

我做错了什么让它不断改变它的颜色?

我假设我需要做更多的事情才能接受 RGB 颜色?glColor3f(29, 137, 59);...

4

1 回答 1

9

glColor3f接受浮点参数。通过这样做,大数字将被转换为浮点数,因此变为 29.0f、137.0f 和 59.0f。给定颜色在 0-1 的范围内表示,这些颜色会被限制在 0-1 的范围内,当然会显示为白色(1.0、1.0、1.0)。

改为使用glColor3ub。它接受一个无符号字节作为其参数,范围为 0-255,这可能是您最习惯的。还有其他形式,例如glColor3i, glColor3s,等glColor3uiglColor3us它们接受整数和短裤(及其无符号变体),它们在整数和短裤的范围内定义。这些只是在内部转换为十进制变体(例如decimal = int / INT_MAX)。

于 2013-01-09T15:21:43.833 回答