Страница 49 из 54

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

Добавлено: 22 июл 2017, 16:46
altmax
Cfyz писал(а):
21 июл 2017, 13:01
А еще рамоки (которые кстати по большей части одинаково генерятся для всех шрифтов) вроде бы должны стыковаться ровно, а не внахлест. Используется пиксельные смещение?
Нет, здесь стандартный встроенный шрифт без смещения. Видимо сам шрифт так сделан, что внахлест стыкуются рамки.

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

Добавлено: 23 авг 2017, 11:44
Apromix
Во время тестирования своей игры обнаружилась ошибка в терминале, появилась белая сетка. Что может быть?
imgpsh_fullsize.png
imgpsh_fullsize.png (93.5 КБ) 9277 просмотров

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

Добавлено: 24 авг 2017, 10:04
Cfyz
Apromix писал(а):обнаружилась ошибка в терминале, появилась белая сетка. Что может быть?
Так это же один из дефолтных Alt-хоткеев: Alt+G (grid) переключает отображение сетки, чтобы можно было подебажить расположение/центрирование тайлов.

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

Добавлено: 31 авг 2017, 04:55
Apromix
Буду знать :D И много таких хоткеев?

В терминале есть возможность использовать картики в перемешку с текстом? Например, отображение свойств оружия и перед числом урона показывать меч или топор, перед числами прочности (тек/макс) отображать молот и тд.

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

Добавлено: 02 сен 2017, 19:39
altmax
Apromix писал(а):
31 авг 2017, 04:55
Буду знать :D И много таких хоткеев?

В терминале есть возможность использовать картики в перемешку с текстом? Например, отображение свойств оружия и перед числом урона показывать меч или топор, перед числами прочности (тек/макс) отображать молот и тд.
Дык загружаешь свой тайл - хоть молоток, хоть топор по определенному коду символа, и рисуешь его вместо текста. В демке, что к псевдотерминалу прилагается, вроде были подобные примеры.

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

Добавлено: 16 сен 2017, 19:44
Apromix
Начал изучать язык nim и сделал биндинг для терминала. За основу взял биндинги C и Go. Затем на гитхабе обнаружил биндинг для терминала товарища Zacharycarter (blt.nim). Объединил биндинги, подсматривая в его биндинг и латая свой :)

Затем можно будет добавить ко всем поддерживаемым терминалом биндингам. Скорее всего с выходом новой версии терминала. Язык Nim легок в освоении и набирает популярность.

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

Добавлено: 19 сен 2017, 19:26
kipar
Если что, у меня есть для crystal байндинг -
https://github.com/konovod/medico/blob/ ... erminal.cr

Лень было делать из него отдельный репозиторий, но т.к. nim - практически прямой противник конкурент кристала, если будут добавлять байндинг нима то кристалловский я тоже как репозиторий оформлю.

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

Добавлено: 27 сен 2017, 16:17
Apromix
У кристалла такой лаконичный синтаксис :)

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

Добавлено: 30 окт 2017, 13:14
gelad655
Добрый день. Нашёл в документации к функции print упоминание о "bounding box tag", а конкретно:

This function returns one of the dimensions of a string printed on screen with all formatting enabled. By default print returns the width of a longest line in a printed string. If the string contains a bounding box tag, then maximum width is considered to be already known and print returns the height of an auto-wrapped string printed on screen.

Т.е. как-то можно выводить текст в области с заданной шириной? Что за тег нужно для этого использовать?
Заранее прошу прощения, если это где-то описано, но я не смог найти.

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

Добавлено: 30 окт 2017, 16:26
altmax
gelad655 писал(а):
30 окт 2017, 13:14

Т.е. как-то можно выводить текст в области с заданной шириной? Что за тег нужно для этого использовать?
Заранее прошу прощения, если это где-то описано, но я не смог найти.
terminal_print_ext (2,30,40,5,TK_ALIGN_DEFAULT, Message.c_str())
;

terminal_print (x,y,width, height,ALIGN,"Hello, world");
Виды выравнивания:
#define TK_ALIGN_DEFAULT 0
#define TK_ALIGN_LEFT 1
#define TK_ALIGN_RIGHT 2
#define TK_ALIGN_CENTER 3
#define TK_ALIGN_TOP 4
#define TK_ALIGN_BOTTOM 8
#define TK_ALIGN_MIDDLE 12

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

Добавлено: 05 ноя 2017, 20:33
Apromix
Такой вопрос :D

До сих пор я писал рогалик символьный, все вроде шло гладко. Теперь же я хочу добавить и графические тайлы, скажем 32х32. Получается нужно будет выводить и обычный шрифт как сейчас в его сетку, скажем 8х16 и графические тайлы в сетку 32х32.

Как такое провернуть?

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

Добавлено: 07 ноя 2017, 11:59
Cfyz
Apromix писал(а):Получается нужно будет выводить и обычный шрифт как сейчас в его сетку, скажем 8х16 и графические тайлы в сетку 32х32.
Так это штатный совершенно режим работы. Если размеры тайлов кратны ячейкам, то достаточно указать при загрузке тайлсета его "шаг":

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

0xE000: tileset.png, size=32x32, spacing=4x2
И дальше как обычно

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

terminal_put(x, y, $E000+i);
Где x, y это, очевидно, координаты в ячейках. Т. е. большие тайлы выравниваются не по сетке 32x32, а по меньшей базовой.

Spacing еще учитывается при выводе текста, например если загрузить 16x16 тайлы-пиктограммы (spacing=2x1), то их можно будет использовать в выводе через print (типа 2⌘ 3⌬) и удвоенный размер "символа" будет учтен при самом выводе, при автопереносе или измерении строки (это можно заметить в примере "Formatted Log"). Но 32x32 вряд ли предназначено для вывода вместе с текстом =/.

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

Добавлено: 20 ноя 2017, 06:35
Харука-тян
Обновилась до текущей версии, terminal_move молча пропал из библиотеки (в ченжлогах не нашла упоминаний о его уходе).

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

Добавлено: 21 ноя 2017, 15:29
Cfyz
Харука-тян писал(а):terminal_move молча пропал из библиотеки
Ой.

Он немного молча появился и так же молча пропал, когда я делал рефакторинг (путем выпиливания) работы с потоками в библиотеке. Я тогда не впилил его обратно потому, что этот "курсор" кажется выполнял не совсем то, что на самом деле было нужно.

Я ведь правильно понимаю, что тебе нужен не именно курсор ввода, а просто самостоятельно (без ручного put/refresh) мигающий символ для визуализации некоторой координаты? Ведь тогда функциональность по запоминанию позиции вывода после put/print, переносы и магические TK_USE_CURSOR_POS -- все это не нужно, даже terminal_move толком не нужен, а нужен анимированный тайл.

Если так, то, возможно, имеет смысл сразу попытаться сделать простой вариант анимированных тайлов, потому что это общий случай и может быть полезен более чем в одном месте. Простой вариант -- это когда они все анимированы синхронно (но отличаются набором/частотой кадров), как например тут:
Скрытый текст: ПОКАЗАТЬ
Mine.gif
Mine.gif (88.1 КБ) 8479 просмотров

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

Добавлено: 23 ноя 2017, 08:18
Харука-тян
Cfyz писал(а):
21 ноя 2017, 15:29
имеет смысл сразу попытаться сделать простой вариант анимированных тайлов, потому что это общий случай и может быть полезен более чем в одном месте. Простой вариант -- это когда они все анимированы синхронно (но отличаются набором/частотой кадров), как например тут:
Скрытый текст: ПОКАЗАТЬ
Mine.gif
Действительно имеет. Ждём! :D