我正在使用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 回答
谢谢大家,这有效: