Введение в Simple DirectMedia Layer



Видео - часть 2


/p>

  • Загрузка и отображение рисунков
  • Для вашего удобства, SDL предоставляет единственную функцию для загрузки изображений, SDL_LoadBMP().  Библиотека для загрузки изображений может быть найдена в архиве с демонстрациями SDL (SDL demos archive).

    Вы можете отобразить загруженную картинку, используя SDL_BlitSurface() для копирования ее в видеобуфер. SDL_BlitSurface() автоматически усекает копируемую область, которая должна быть передана SDL_UpdateRects() для обновления изменившейся части экрана.

    Совет #1:

    Если вам необходимо показывать некоторую картинку много раз, вы можете ускорить вывод, конвертировав ее в формат дисплея. Для этого используется функция SDL_DisplayFormat()

    Совет #2:

    Большинство изображений спрайтов имеют прозрачный фон. Вы можете разрешит копирование с прозрачностью (colorkey blit) функцией SDL_SetColorKey().

    Пример:

     void ShowBMP(char *file, SDL_Surface *screen, int x, int y){    SDL_Surface *image;    SDL_Rect dest;     /* Загрузим BMP файл на поверхность */    image = SDL_LoadBMP(file);    if ( image == NULL ) {        fprintf(stderr, "Couldn't load %s: %s\n", file, SDL_GetError());        return;    }     /* Блитируем (копируем) на экранную поверхность.       Поверхность не должна быть заблокирована (locked).     */    dest.x = x;    dest.y = y;    dest.w = image->w;    dest.h = image->h;    SDL_BlitSurface(image, NULL, screen, &dest);     /* Обновим измененную часть экрана */    SDL_UpdateRects(screen, 1, &dest);}

    [Назад] Содержание [Дальше]




    Содержание  Назад  Вперед