我正在使用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);
答案 0 :(得分:0)
谢谢大家,这很有效:
const SDL_Rect* Sprite::getSpriteClip(int x)
{
return &gSpriteClips[x];
}
SDL_RenderCopy( system.getRenderer(), system.getFullSpriteTexture(), sprite.getSpriteClip(0), &dest);