首页 文章

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

提问于
浏览
-1

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

无法将'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

    谢谢大家,这有效:

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

相关问题