无法将'SDL_Rect'转换为'const SDL_Rect*'

Cannot convert 'SDL_Rect' to 'const SDL_Rect*'

本文关键字:Rect SDL const 转换      更新时间:2023-10-16

我正在使用SDL2。我在 sprite 类中有 SDL rects,我想在 main 中访问该SDL_Render_copy()函数,但我不断收到此错误:

无法将参数"3"的"SDL_Rect"转换为"const SDL_Rect*"到"int SDL_RenderCopy(SDL_Renderer*,SDL_Texture*,const SDL_Rect*,const SDL_Rect*(">

我的精灵类的内部看起来像这样:

Sprite::Sprite()
{
//sprite clips
gSpriteClips[0].h = 128;
gSpriteClips[0].w = 128;
gSpriteClips[0].x = 16;
gSpriteClips[0].y = 144;
}
SDL_Rect Sprite::getSpriteClip(int x)
{
return gSpriteClips[x];
}

总的来说,我有这个:

SDL_RenderCopy( system.getRenderer(), system.getFullSpriteTexture(), sprite.getSpriteClip(0), &dest);

我一直在修补这个错误,但我只能让它按照下面的方式工作——但我宁愿在没有这行额外代码的情况下实现这一点:

SDL_Rect newrect = sprite.getSpriteClip(0);
SDL_RenderCopy( system.getRenderer(), system.getFullSpriteTexture(), &newrect, &dest);

谢谢大家,这奏效了:

const SDL_Rect* Sprite::getSpriteClip(int x)
{
return &gSpriteClips[x];
}
SDL_RenderCopy( system.getRenderer(), system.getFullSpriteTexture(), sprite.getSpriteClip(0), &dest);