我有一个UISlider给我的浮点值在0到255之间,我需要设置一个在Glubyte中的Cocos2D的不透明度。
如何将浮动转换为GLubyte ??????
感谢
答案 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);