gpt4 book ai didi

c++ - BPP 颜色变化 SDL

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:24 25 4
gpt4 key购买 nike

每次我运行我的应用程序时颜色都会改变,显示如下

Display = SDL_SetVideoMode(WIDTH, HEIGHT, 16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ASYNCBLIT)

然后我做

SDL_FillRect(Display, &Woutput, colors[1]);

颜色变量信息:

Uint32 colors[3];
colors[1] = SDL_MapRGB(Surf_Display->format, 32, 32, 255);

如果我将 SDL_FillRect(Display, &Woutput, colors[1]); 更改为 SDL_FillRect(Display, &Woutput, SDL_MapRGB(Surf_Display->format, 32, 32, 255)); 它工作正常,这让我相信它与 Uint32 有关,但不确定将其更改为什么。

最佳答案

我按照建议将此评论添加为答案。

当您调用 SDL_FillRect 时,您的颜色数组可能未使用您期望的值进行初始化。当发生这种情况时,颜色将包含其中的任何随机垃圾,这可以解释每次运行时颜色的变化。

要查看是否确实如此,请尝试像这样直接对数组进行零初始化:

Uint32 colors[3] = {0};

现在,如果您运行您的程序并发现颜色不再变化(它可能只是黑色,因为颜色现在包含全零)——您知道此时出了什么问题。

关于c++ - BPP 颜色变化 SDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7948835/

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