如何在不加载图像文件的情况下将白色方块创建为精灵?

时间:2016-10-04 05:31:20

标签: cocos2d-x cocos2d-x-3.0 cocos2d-x-3.x

通常我们通过执行以下操作从精灵框架,文件或纹理创建精灵:

Sprite* foo =  Sprite::create(filename);

如何在不使用DrawNode或将文件传递给精灵的情况下创建指定尺寸的白色方块?

我知道这是可能的,因为我偶然发现另一篇文章描述了如何做到这一点,但忽略了书签,并且帖子没有显示在搜索结果中..

2 个答案:

答案 0 :(得分:4)

这样的事情:

auto dataLen = width * height * bitsPerPixel * sizeof(unsigned char);
auto data = static_cast<unsigned char*>(malloc(dataLen));
memset(data, 255, dataLen);
auto texture = new Texture2D();
texture->initWithData(data, dataLen, Texture2D::PixelFormat::RGBA8888, width, height, Size(width, height));
auto sprite = Sprite::createWithTexture(texture);

答案 1 :(得分:1)

您也可以尝试使用base64编码的字符串来创建精灵,有一些在线转换器可以输出这样的格式。