iPhone Cocos2D - 将浮动转换为GLubyte

时间:2011-11-12 17:11:12

标签: iphone ios opengl-es cocos2d-iphone

我有一个UISlider给我的浮点值在0到255之间,我需要设置一个在Glubyte中的Cocos2D的不透明度。

如何将浮动转换为GLubyte ??????

感谢

3 个答案:

答案 0 :(得分:3)

GLubyte简单定义为:

typedef unsigned char  GLubyte;

所以,转换实际上没有问题(看看this post,它提供了“基本”(int)(x+0.5))背后的一些可能方法,除了“超出范围”值(因为unsigned char可以表示0到255之间的小数)。简而言之,您应该决定如何处理无法表示为无符号整数的浮点值。

因为你说你的滑块给出了0到255之间的值,所以你应该没有问题。

答案 1 :(得分:1)

static_cast<GLubyte>(floatNumber * 255.f); 

我没注意到UISlider范围已经在0-255之间..所以删除上面的乘法答案..

static_cast<GLubyte>(floatNumber); 

答案 2 :(得分:1)

如果您的滑块已配置为0-255范围,则您不必缩放该值,只需转换该类型即可。这样的事情应该有效:

GLubyte component = (GLubyte)lroundf(slider.value);