Введение в 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);}

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




Начало  Назад  Вперед



Книжный магазин