Создадим простенькое окошко со спрайтом в нём при помощи библиотеки SDL.
Прежде всего подключим необходимые заголовочные файлы:
#include <SDL/SDL.h>
Зададим высоту ширину и заголовок окна:
const int WINDOW_WIDTH = 640; const int WINDOW_HEIGHT = 480; const char* WINDOW_TITLE = "how2.org.ua";
И приступим к формированию текста главной функции:
int main(int argc, char **argv) {
Инициализируем SDL:
SDL_Init( SDL_INIT_VIDEO ); SDL_Surface* screen = SDL_SetVideoMode( WINDOW_WIDTH,WINDOW_HEIGHT, 0,SDL_HWSURFACE | SDL_DOUBLEBUF ); SDL_WM_SetCaption( WINDOW_TITLE, 0 );
Подробнее тут.
Загружаем спрайт и устанавливаем прозрачный цвет:
SDL_Surface* bitmap = SDL_LoadBMP("sprite.bmp"); SDL_SetColorKey( bitmap, SDL_SRCCOLORKEY, SDL_MapRGB(bitmap->format,0, 0, 0) ); #чёрный - прозрачный
Часть спрайта которую хотим нарисовать:
SDL_Rect source; source.x = 0; source.y = 0; source.w = 120; source.h = 120;
В моём случае это всё изображение.
Задаём часть экрана на которую будем выводить спрайт:
SDL_Rect destination; destination.x = 100; destination.y = 100; destination.w = 120; destination.h = 120;
Стандартное окончание программы. Цикл ожидания событий:
SDL_Event event; bool gameRunning = true; while (gameRunning){ if (SDL_PollEvent(&event)){ if (event.type == SDL_QUIT){ gameRunning = false; } } SDL_BlitSurface(bitmap, &source, screen, &destination); SDL_Flip(screen); } SDL_FreeSurface(bitmap); SDL_Quit(); return 0; }
У меня получилось так:
Мой исходник и спрайт можно скачать тут.
Компилировать так:
g++ sprite.cpp -o sprite -lSDL
Пусть и вам повезёт!