gpt4 book ai didi

c++ - SDL 对渲染的怀疑

转载 作者:行者123 更新时间:2023-11-28 05:34:37 26 4
gpt4 key购买 nike

我正在浏览 this specific教训。

gSpriteSheetTexture.render
(
( SCREEN_WIDTH - currentClip->w ) / 2,
( SCREEN_HEIGHT - currentClip->h ) / 2,
currentClip
);

前两个参数设置目标矩形( Sprite 剪辑)的 x 位置和 y 位置。我不明白他为什么要写 (SCREEN_WIDTH - currentClip->w)/2,而他本来可以写 SCREEN_WIDTH/2?

这是渲染函数:

void LTexture::render(int x, int y, SDL_Rect* clip)
{
SDL_Rect renderQuad = { x, y, mWidth, mHeight };
if (clip != NULL)
{
renderQuad.w = clip->w;
renderQuad.h = clip->h;
}

SDL_RenderCopy(gRenderer, mTexture, clip, &renderQuad);
}

最佳答案

老师这样做是为了确保您的图像在屏幕上很好地居中。

如果您使用 SCREEN_WIDTH/2,图像将从屏幕中间开始,因此不会完全居中。因此,他减去图像宽度的一半,这将确保图像的左半部分绘制在屏幕中间的左侧,而右半部分绘制在屏幕中间的右侧。

这是一个简单的例子。如果我的回答对您有帮助,请告诉我!

enter image description here

关于c++ - SDL 对渲染的怀疑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38592494/

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