вторник, 9 февраля 2016 г.

Lazarus World. Подключаем библиотеку SDL 1.2


Внимание! Статья основна из статей посвященных SDL 1.2 с сайта http://www.freepascal-meets-sdl.net/

Для того чтобы начать работать с библиотекой SDL 1.2 нам с вами понадобятся заголовочные файлы переведенные в язык Pascal и файлы динамических библиотек (файлы запускаемого окружения), которые используется вместе с нашей программой в момент запуска.
Мне известны два проекта, в рамках которых осуществлен перевод заголовочных файлов на язык Pascal. Ниже я приведу названия этих проектов и ссылки на ресурсы, откуда их можно скачать.
Скачивать заголовочные файлы нам не придется, т.к. в составе компилятора freepascal они уже включены (начиная с версии fpc 2.2.2 http://wiki.freepascal.org/FPC_and_SDL ), т.е. если мы устанавливаем IDE Lazarus на Ubuntu 15.10, то все необходимые заголовочные файлы SDL 1.2 там уже есть. Расположены они по следующему пути:

/usr/share/fpcsrc/2.6.4/packages/sdl

Файлы динамических библиотек в Ubuntu 15.10 можно установить по следующей команде в терминале:

sudo apt-get install libsdl1.2debian libsdl1.2-dev

Ну и не помешает установить весь необходимый инструментарий для сборки проектов, в частности туда входит компиляторы gcc, g++ и т.д.

sudo apt-get install build-essential

Теперь можно перейти к созданию нового проекта и настройки проекта в среде Lazarus.

Запустите Lazarus и создайте новый проект. Для это выберите пункт меню «File» (Файл) – подпункт «New...» (Создать...). В открывшемся окне, с именем «New..» (Создать...), в левой части выберите раздел «Project» (Проект) и потом выберите подраздел «Program» (Программа), потом нажмите кнопку «OK».

Создайте папку хранения нашего проекта, например ~/projects/lazarus/sdl/sdl_p1/. Сохраните проект под именем sdl_p1.lpr. Для этого выберите пункт меню «File» (Файл) - подпункт меню «Save As...» (Сохранить как) и указать путь до папки хранения нашего проекта.

Настойка проекта завершена. Нам осталось в редактор кода добавить минимальный код SDL проекта, собрать его и запустить на исполнение.

program sdl_p1;

{$mode objfpc}{$H+}

uses sdl;
var
  screen :pSDL_SURFACE;
  loopstop: boolean = FALSE;
  event: pSDL_EVENT;

begin
     SDL_Init(SDL_INIT_VIDEO);
     screen := SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);

     new(event);

     while loopstop = FALSE do
     begin
          if SDL_PollEvent(event) = 1 then
          begin
               case event^.type_ of
                    SDL_KEYDOWN:
                    begin
                         if event^.key.keysym.sym = 27 
                         then loopstop := TRUE;
                    end;
                    SDL_QUITEV:
                    begin
                         loopstop := TRUE;
                    end;
               end;
          end;
     end;
     Dispose(event);
     SDL_FreeSurface(screen);
     SDL_QUIT;
end.  


syntax highlighted by Code2HTML, v. 0.9.1

Комментариев нет:

Отправить комментарий