2

Lazyから次のコードを取得しました。

#include <iostream>
#include "SDL/SDL.h"

using namespace std;

int main()
{
    //Start SDL
    SDL_Init(SDL_INIT_EVERYTHING);

    SDL_Surface *hello = NULL;
    SDL_Surface *screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);

    hello = SDL_LoadBMP("hello.bmp");
    SDL_BlitSurface(hello, NULL, screen, NULL);
    SDL_Flip(screen);
    SDL_Delay(3000);
    SDL_FreeSurface(hello);

    //Quit SDL
    SDL_Quit();
    return 0;
}

時々写真が表示されますが、ほとんどの場合、それはただの黒い窓です (この写真の細い紐が付いています)。そして、同じディレクトリに「hello.bmp」という名前の BMP ファイルがあります。PS. ArchLinux を持っています。

4

1 に答える 1

2

画像を表示する前に、選択したビデオ モードと互換性のある形式に変換する必要があります。したがって、次のようなものを実装する必要があります。

SDL_Surface *imagef;
imagef = SDL_DisplayFormat(image);

BMP を爆破する前にimagef、すべての操作に使用してください。

于 2012-05-24T15:42:25.943 に答える