0

現在、SDL を使用して画面に画像を描画していますが、エラーなしで画像が読み込まれます。しかし、画面に画像を描画しようとすると、何も表示されません。これが私のコードです:

画像読み込み機能:

SDL_Surface *d2Sprite::Load(char *file)
{
SDL_Surface *temp = NULL;
SDL_Surface *opt = NULL;

if((temp = SDL_LoadBMP(file)) == NULL)
{
    cout << "Unable to load image '" << file << "'. " << SDL_GetError() << endl;
    return NULL;
}

opt = SDL_DisplayFormatAlpha(temp);
SDL_FreeSurface(temp);

return opt;
}

描画機能:

bool d2Sprite::Draw(SDL_Surface *dest, SDL_Surface *src, int x, int y)
{
if(dest == NULL || src == NULL)
{
    cout << "Unable draw sprite! " << SDL_GetError() << endl;
    return false;
}

SDL_Rect destR;
destR.x = x;
destR.y = y;

SDL_BlitSurface(src, NULL, dest, &destR);

return true;
}
4

2 に答える 2

1

ブリッティングに使用する長方形の幅と高さを設定していませんdestR

blir 操作の戻り値を調べて、成功したかどうかを判断する必要があります。

また、サーフェスのアルファを有効にする前にアルファを設定していないため、アルファ ブレンディングで問題が発生する可能性があります。SDL_BlitSurface()ドキュメントを参照してください。

于 2013-01-03T12:36:05.013 に答える