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

时间:2018-05-24 03:54:30

标签: c++ sdl-2

我正在使用SDL2。我在一个sprite类中有SDL rects,我想在main SDL_Render_copy()函数中访问,但我一直收到这个错误:

  

无法将'SDL_Rect'转换为'const SDL_Rect *'以将参数'3'转换为'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);

1 个答案:

答案 0 :(得分:0)

谢谢大家,这很有效:

const SDL_Rect* Sprite::getSpriteClip(int x)
{
    return &gSpriteClips[x];
}

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