BearLibTerminal - псевдоконсольное окно для рогалика

Форум библиотеки BeaRLib

Модератор: Apromix

vapekreng
Сообщения: 63
Зарегистрирован: 22 фев 2016, 22:33

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение vapekreng » 02 окт 2016, 15:04

Apromix писал(а): Если не работает, подсмотрите здесь
Вот за ссылку огромное спасибо!
vapekreng писал(а):Есть возможность, не указывая шрифт, поменять только размер шрифта?
Apromix писал(а): Вообще-то для font должен был бы быть кактой-то name, path или file, где бы указывался путь к файлу со шрифтом.
Ответ получил, спасибо)

vapekreng
Сообщения: 63
Зарегистрирован: 22 фев 2016, 22:33

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение vapekreng » 02 окт 2016, 19:37

Посмотрел примеры, наткнулся на такое:

Код: Выделить всё

def setup_font(): blt.set("font: %s, size=%d" % (font_name, font_size))
Я так понимаю, что %s берет нулевое, а %d первое значение из кортежа (font_name, font_size)? А что значат s и d? Не кинете ссылку, где поподробнее почитать?
Я бы сделал так:

Код: Выделить всё

def setup_font(): blt.set("font: " + font_name+ ", size="+str(font_size))
Есть ли принципиальная разница? Чем эти 2 способа различаются?

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Jesus05 » 03 окт 2016, 07:10

vapekreng писал(а):Посмотрел примеры, наткнулся на такое:

Код: Выделить всё

def setup_font(): blt.set("font: %s, size=%d" % (font_name, font_size))
Я так понимаю, что %s берет нулевое, а %d первое значение из кортежа (font_name, font_size)? А что значат s и d? Не кинете ссылку, где поподробнее почитать?
...
Что-такое s, d и другие расписано тут https://ru.wikipedia.org/wiki/Printf

vapekreng
Сообщения: 63
Зарегистрирован: 22 фев 2016, 22:33

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение vapekreng » 03 окт 2016, 13:08

Спасибо за ссылку, буду изучать

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Cfyz » 03 окт 2016, 15:17

vaperkreng писал(а):terminal.color(terminal.color_from_name('Red'))
Можно просто terminal.color('red'), в большинстве врапперов color/bkcolor могут принимать строку. Но регистр важен и должен быть нижним, 'Red' != 'red'. Наверное, имеет смысл сделать палитру регистро-независимой.
Apromix писал(а):К сожалению не указана в таблице конфигурация библиотеки группа параметров font.
А вот и неправда ваша, там ниже первой таблицы идет довольно подробное описание про шрифты. Вот чего не хватает, так это набора примеров "конфигураций" шрифтов/тайлсетов с иллюстрациями. Подозреваю, что может быть тяжело сходу понять что чему соответствует по сухому описанию, сколь полным бы оно ни было.
vaperkreng писал(а):Есть возможность, не указывая шрифт, поменять только размер шрифта?
Apromix писал(а):Возможно, ошибка в терминале. Попробуйте font.size
Там на страничке есть про это неприметная строчка, мол "все необходимые параметры конкретного тайлсета должны быть указаны в одном вызове функции set". Так уж вышло, что пока надо все разом. Надо доработать структуру значений, которыми оперируют функции set/get. Я вот размышляю над добавлением инструментов для организации UI и там точно придется рефакторить работу с деревом значений/свойств.
Пытается раскуклиться

Аватара пользователя
Newman
Сообщения: 144
Зарегистрирован: 23 фев 2010, 15:30

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Newman » 05 окт 2016, 12:45

А существует ли подобная библиотека, но для Java?

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Cfyz » 06 окт 2016, 11:34

Подобная для Java, как минимум, SquidLib. Но я ее не пробовал, только разглядывал.
Надо и для BearLibTerminal будет сделать Java пакет.
Пытается раскуклиться

Аватара пользователя
Newman
Сообщения: 144
Зарегистрирован: 23 фев 2010, 15:30

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Newman » 08 окт 2016, 10:13

Cfyz писал(а):Надо и для BearLibTerminal будет сделать Java пакет.
А это вообще возможно?

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Cfyz » 08 окт 2016, 18:59

Ну для C# же как-то получилось =). Надо взять JNA и аналогичным образом обернуть вызовы.
Есть конечно проблема сделать пакет самодостаточным (он разбухнет до неприличных размеров из-за бинарников), но вот как для C# — враппер отдельно, .dll отдельно — вполне возможно.
Пытается раскуклиться

Nyahjiaxx
Сообщения: 2
Зарегистрирован: 09 окт 2016, 22:43

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Nyahjiaxx » 09 окт 2016, 22:48

На своем законном месте нету U+2523 (BOX DRAWINGS HEAVY VERTICAL AND RIGHT) вместо него U+2517 (BOX DRAWINGS HEAVY UP AND RIGHT)
Вложения
BOX DRAWINGS FAIL.png
BOX DRAWINGS FAIL.png (12.92 КБ) 4222 просмотра

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Cfyz » 10 окт 2016, 18:02

В - внимательность. Поправлено, будет включено в следующую сборку.
Пытается раскуклиться

Аватара пользователя
Apromix
Мастер
Сообщения: 1236
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Apromix » 11 окт 2016, 10:31

Возможно упущен был при планировании библиотеки ключ file для шрифта (пути к файлу)? Вот как в настройке для log:
log: file=log.txt, level=trace
font: file=resources\UbuntuMono-R.ttf, size=11

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Cfyz » 11 окт 2016, 12:03

Кажется, наоборот =) При конфигурировании/загрузке тайлсета неименованный параметр в группе описывает "ресурс", который может быть файлом, а может и не быть файлом. Например, загрузка из блока памяти. Но вывод лога тоже может производиться необязательно в файл, это как минимум может быть stdout/stderr. При должной фантазии это даже может быть функция-коллбек (к сожалению, далеко не в каждом языке можно устроить элегантное форматирование коллбеков в строку параметров, вот в C#, Lua, Python -- можно). Так что это скорее я должен был у лога сделать конфигурирование в виде "log: log.txt, level=trace" =_=.

Другое дело, что с безымянным параметром неудобно эти значения читать обратно или составлять на лету механически. Справдливее будет дать им какое-то опциональное имя, например чтобы "font: foo.ttf, size=11" и "font: source=foo.ttf, size=11" были равнозначны. Жаль только, что нельзя обойтись каким-то одним общим именем, так как у разных групп параметров безымянное значение имеет разный смысл -- ну или надо выбрать что-то одинаково безликое типа "value".
Пытается раскуклиться

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Jesus05 » 11 окт 2016, 12:46

Т.е. выходит (для особых извращенцев) шрифт можно грузить не из файла, а из stdin ?

я все еще в черном блокнотике :(

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: BearLibTerminal - псевдоконсольное окно для рогалика

Сообщение Cfyz » 11 окт 2016, 13:18

Шрифт, как минимум, можно грузить из архива на лету, без промежуточного сохранения на диск. Можно и из stdin, только читать его оттуда все равно придется самому =). Про стандартные потоки это было гипотетически, вывод лога в stderr имеет смысл (вероятно туда и надо выводить пока не указано иное, но это спорный момент). А вот польза от встроенного чтения тайлсетов из stdin как-то сомнительна.
Пытается раскуклиться

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость