gpt4 book ai didi

c - 使用 C 中的 SDL 2.0,如何使矩形淡入淡出?

转载 作者:太空宇宙 更新时间:2023-11-04 03:19:05 26 4
gpt4 key购买 nike

我正在制作一个小型 2D 游戏,我试图让一个矩形从透明(白色)渐变到它的原始颜色,然后再次变回白色,然后继续从白色到它的颜色并返回。例如:

白色 -> 淡化为红色 -> 红色 -> 淡化为白色 -> 重复...

我制作了我的矩形:

SDL_Rect rect;

然后我设置颜色并将矩形绘制到屏幕上(在设置它的 x 和 y 位置和大小之后):

SDL_SetRenderDrawColor(renderer, 255, 51, 0, 255);
SDL_RenderFillRect(renderer, &rect);

但是我不知道最后一个参数是什么(alpha)。在 wiki 中,SetRenderDrawColor 的文档是:

int SDL_SetRenderDrawColor(SDL_Renderer* renderer,
Uint8 r,
Uint8 g,
Uint8 b,
Uint8 a)

其中“a”是 alpha 值(r、g、b 是红色、绿色、蓝色)。这是什么让我改变颜色的不透明度?如果我有一个循环并且每一帧我只有一个在 0 到 255 之间变化的变量并使“alpha”值允许我改变透明度并使矩形颜色“脉冲”?我该怎么做?

我必须让我的矩形成为纹理吗?有没有办法为我打开此功能以更改 alpha 值?

编辑:我意识到我没有在循环中使用 RenderClear!这解决了问题。

最佳答案

您需要调整 alpha 值。 Alpha 代表透明度。最大值意味着它是不透明的(根本不透明),最小值为零意味着它是完全透明的(根本不可见)。在本例中,255 表示它不透明。如果你将它设置为 128,那么它将是 50% 的透明度。要淡入淡出,请调整 alpha 值。

关于c - 使用 C 中的 SDL 2.0,如何使矩形淡入淡出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48200230/

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