gpt4 book ai didi

c++ - 在cocos2d-x中设置纹理的矩形颜色

转载 作者:行者123 更新时间:2023-11-28 06:41:02 26 4
gpt4 key购买 nike

我正在尝试在 cocos2d-x 中使用 CCTexture2D 创建一个矩形 Sprite 。这是我的代码。

CCSprite *sprite = CCSprite::create();
GLubyte buffer[sizeof(GLubyte)*4];
buffer[0]=255;
buffer[sizeof(GLubyte)]=0;
buffer[sizeof(GLubyte)*2]=0;
buffer[sizeof(GLubyte)*3]=255;
CCTexture2D *texture = new CCTexture2D;
CCSize size = CCSize(100, 100);
texture->initWithData(buffer, kCCTexture2DPixelFormat_RGB5A1, 1, 1, size);
sprite->setTexture(texture);
sprite->setTextureRect(CCRectMake(0, 0, size.width, size.height));
this->addChild(sprite, 1);

问题是我没有得到矩形的预期颜色。使用上述缓冲区值,我得到蓝色。我不确定如何给 GLubyte 赋值(我也不知道 GLubyte 是如何工作的)。

提前致谢。

最佳答案

如果得到的是蓝色而不是红色,请尝试将索引 1 或 2 设置为 255 时得到的结果。也许像素数据的布局实际上是 BGR。看起来确实如此。

如果不是这种情况,可能是因为纹理的最小尺寸必须为 2x2 或 4x4 像素(您的尺寸为 1x1)。您可能想尝试使用 4x4 纹理和相应大小的数据缓冲区。

请注意,您可以只编写 buffer[3]=255;,因为缓冲区的大小已经被“调整为”一个 GLubyte 数组。无需为索引使用 sizeof。

关于c++ - 在cocos2d-x中设置纹理的矩形颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25948946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com