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

How to create a white square as a sprite, without having to load an image file?

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

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

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

我知道这是可能的,因为我偶然发现了另一个 post,它描述了如何做,但忽略了对其进行书签,并且 post 没有出现在搜索结果中..

像这样:

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);

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