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

Cannot convert 'SDL_Rect' to 'const SDL_Rect*'

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

cannot convert 'SDL_Rect' to 'const SDL_Rect*' for argument '3' to 'int SDL_RenderCopy(SDL_Renderer*, SDL_Texture*, const SDL_Rect*, const SDL_Rect*)'

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

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