===== BearLibTerminal ===== [[#скачать|скачать]] | [[#документация]] | [[https://github.com/cfyzium/bearlibterminal|репозиторий]] | [[http://rlgclub.ru/forum/viewforum.php?f=26|форум]] BearLibTerminal — это небольшая в интерфейсном плане библиотека для организации терминал-подобного окна, вывода текста, обработки простого ввода. Большое количество roguelike совершенно осознанно используют аскетичное символьное/псевдографическое оформление. Однако, использование стандартных средств вывода посредством командной строки ОС сопряжено с досадными ограничениями скорости вывода, цветовой гаммы, используемого шрифта. Нередко проблемы вызывает применение расширенного набора символов, например одновременно нескольких языков и/или псевдографики. BearLibTerminal позволяет обойти упомянутые ограничения, предоставляя собственное окно с прямоугольной сеткой ячеек-знакомест и лаконичный, но мощный API для вывода отдельных символов и текста. Достойными внимания особенностями BearLibTerminal являются: * Легкость использования Unicode. * Использование тайловых (в виде картинки) и векторных (TrueType) шрифтов. * Расширенный вывод символов: композиция, центрирование, смещение. * Высокая скорость вывода (в основе лежит OpenGL). * Поддержка как клавиатуры, так и мыши. * Сборки под Windows, Linux и OS X. * Привязки к нескольким языкам: С/С++, C#, Lua, Pascal, Python, Ruby. Похожими инструментами, также преимущественно предназначенными для разработки псевдоконсольных/roguelike-игр, являются * [[http://doryen.eptalys.net/libtcod/|libtcod]] * [[https://github.com/tommyettinger/TinyCurses|TinyCurses]] В отличие от популярной библиотеки libtcod, функциональность BearLibTerminal сконцентрирована на выводе псевдо- и тайловой графики. Библиотека не включает в себя средств генерации случайных чисел или расчета кратчайшего пути. Вместо этого, BearLibTerminal предоставляет больше возможностей по работе с шрифтами, тайлами и выводу их на экран. ==== Несколько скриншотов ==== {{gallery>:en:bearlibterminal?demo*.png&107x80&crop&lightbox}} ==== Простой пример использования ==== #include "BearLibTerminal.h"   int main() {     terminal_open();       // Выводим текст     terminal_printf(1, 1, "Hello, world!");     terminal_refresh();       // Ждем, пока пользователь не закроет окно     while (terminal_read() != TK_CLOSE);       terminal_close(); } ==== Скачать ==== Версия 0.15.7 для {{en:bearlibterminal:bearlibterminal_0.15.7.zip|Windows}}, {{en:bearlibterminal:bearlibterminal_0.15.7.tar.bz2|Linux}} и {{en:bearlibterminal:bearlibterminal_0.15.7_osx.zip|OS X}} ([[ru:bearlibterminal:changelog|список изменений]]). Архив содержит саму библиотеку, беглую демонстрацию возможностей и заголовочные файлы к нескольким языкам программирования. В архиве находятся 32 и 64-битные бинарные файлы. ==== Документация ==== * [[.:bearlibterminal:design|Общий дизайн]] * [[.:bearlibterminal:reference|Описание API]] ==== Лицензия ==== Библиотека распространяется в основном под [[http://opensource.org/licenses/MIT|лицензией MIT]] с отдельными частями на других условиях: * Модифицированный код библиотеки [[http://www.freetype.org/freetype2/|FreeType2]] под лицензией FreeType License. * [[http://lodev.org/lodepng/|PicoPNG]] под лицензией zlib. * [[http://keyj.emphy.de/nanojpeg/|NanoJPEG]] под лицензией KeyJ's Research License.