Невозможно преобразовать SDL_Rect в const SDL_Rect * - PullRequest
0 голосов
/ 24 мая 2018

Я использую SDL2.У меня есть SDL-ссылки в спрайтовом классе, к которым я хочу получить доступ в 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 голосов
/ 24 мая 2018

Спасибо всем, это сработало:

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

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