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

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

Модератор: Apromix

Tookser
Сообщения: 155
Зарегистрирован: 08 апр 2010, 11:09

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

Сообщение Tookser » 05 май 2018, 08:04

Tookser писал(а):
04 май 2018, 19:28
Понял, спасибо.
Ещё один вопрос. У меня есть цикл, в котором key = t.read() и проверка состояния клавиш, это основная часть интерфейса. Включена опция input.filter = keyboard+ , как в каком-то примере. Но эта опция мешает в другой части программы ждать нажатия любой клавиши с помощью terminal_read (так как туда попадает отжатие клавиши). Как проще всего разрешить этот конфликт?:?
Нашёл совсем очевидное решение, перед ожиданием нажатия клавиши ставить опцию input.filter = keyboard , чтобы отжатия клавиш перестали ловиться.

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

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

Сообщение Apromix » 27 июн 2018, 17:52

Пришла в голову идея :D Сделать в терминале переназначение клавиш через конфигурационный файл. А также добавить виртуальные клавиши для самых основных функций рогалика, как поднятие предметов (TK_PICKUP), выход из сцены (TK_QUIT), открытие инвентаря (TK_INVENTORY) и т.д.

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

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

Сообщение Apromix » 01 ноя 2018, 07:34

А как сделать счелчок мышкой по слову?

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

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

Сообщение Apromix » 22 янв 2019, 07:16

Кто-то знает, как можно организовать плавный полет стрелы/болта в терминале?

Аватара пользователя
karagy
Сообщения: 1086
Зарегистрирован: 10 янв 2007, 14:13

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

Сообщение karagy » 22 янв 2019, 12:18

Поочередно перерисовывать спрайт стрелы по траектории движения оной?
Причем если летит медленно - перерисовывать с учетом окрестных спрайтов. Ну, что-бы летела трела а не квадрат с изображением стрелы на нем.
А если летит быстро - можно попробовать и "квадрат со стрелой". Авось не заметят.

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

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

Сообщение Cfyz » 22 янв 2019, 17:18

Apromix писал(а):Пришла в голову идея :D Сделать в терминале переназначение клавиш через конфигурационный файл. А также добавить виртуальные клавиши для самых основных функций рогалика, как поднятие предметов (TK_PICKUP), выход из сцены (TK_QUIT), открытие инвентаря (TK_INVENTORY) и т.д.
Ага, мне тоже эта идея приходила. Кажется, что можно довольно гибко сделать. Проблема в том, что набора предзаготовленных констант не хватит в общем виде. Получается нужно как-то связать конфиг со значениями, которые будет выбирать разработчик, но в конфиге это строчки, а в коде цифры.
Apromix писал(а):А как сделать счелчок мышкой по слову?
Всмысле понять, что щелкнули по слову? Тут помощи от терминала мало, он может подсказать разве что символ и цвет, куда щелкнули. Можно пытаться читать символы влево и вправо до пробела или переноса, но не факт что это будет работать надежно. Чую есть куда подумать в этом направлении, возможность отличать одни тайлы от других по некоторой незаметной дополнительной информации о них может быть полезной.
Apromix писал(а):Кто-то знает, как можно организовать плавный полет стрелы/болта в терминале?
karagy прав, нужно рисовать спрайт по траектории. Разве что "с учетом окрестных спрайтов" это в терминале из коробки, и в произвольном месте спрайт нарисовать это тоже просто, но все равно рисовать самому. Анимацию тоже хотелось бы как-нибудь приделать, например мне очень нравится плавное перемещение действующих лиц между клетками, снаряды и прочие эффекты опять же. Но анимация за пределами (или поперек) сетки знакомест -- это допущение, которое расшатывает все повествование =(. Помимо того, что это непросто включить в лаконичный API, есть еще проблема где остановиться, ведь начав плавно перемещать спрайты из клетки в клетку, хочется добавить красивостей и остальным элементам.
Пытается раскуклиться

altmax
Сообщения: 127
Зарегистрирован: 15 сен 2012, 11:59

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

Сообщение altmax » 16 фев 2019, 07:57

Cfyz писал(а):
22 янв 2019, 17:18

Apromix писал(а):Кто-то знает, как можно организовать плавный полет стрелы/болта в терминале?
karagy прав, нужно рисовать спрайт по траектории. Разве что "с учетом окрестных спрайтов" это в терминале из коробки, и в произвольном месте спрайт нарисовать это тоже просто, но все равно рисовать самому. Анимацию тоже хотелось бы как-нибудь приделать, например мне очень нравится плавное перемещение действующих лиц между клетками, снаряды и прочие эффекты опять же. Но анимация за пределами (или поперек) сетки знакомест -- это допущение, которое расшатывает все повествование =(. Помимо того, что это непросто включить в лаконичный API, есть еще проблема где остановиться, ведь начав плавно перемещать спрайты из клетки в клетку, хочется добавить красивостей и остальным элементам.
Так есть функция в терминале put_ext, которая рисует спрайт с нужным смещением. С помощью неё достаточно легко можно реализовать плавное перемещение и полет стрелы. Только терминал скорее всего надо будет блокироваться на время отрисовки анимации.

altmax
Сообщения: 127
Зарегистрирован: 15 сен 2012, 11:59

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

Сообщение altmax » 23 фев 2019, 17:00

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

liername
Сообщения: 17
Зарегистрирован: 03 май 2014, 11:02

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

Сообщение liername » 20 июл 2019, 17:51

Есть проблема с фулскрином на линуксе: если передавать в terminal_set(...) "window.fullscreen=true" до первого рефреша (но, естественно, после terminal_open), то в полноэкранный режим окно не переходит. Если после рефреша - то переходит, но без ресайза ячеек (т.е. полосы не только по бокам экрана, но и сверху/снизу). В случае с alt+enter все работает как надо.

Также касательно проблемы растягивания символов при фулскрине: т.к. это портит изображение было бы неплохо дать пользователю возможность перезагрузить шрифты в более высоком разрешении. Технически, это уже сейчас возможно, но неизвестно какой size оптимален. Можно, конечно, получать размер ячеек в пикселях, но в фуллскрине они возвращают те же значения, что и в обычном режиме.

P.S. Проверял на linux mint 19.1. Библиотека 64 бит, версия 0.15.7

liername
Сообщения: 17
Зарегистрирован: 03 май 2014, 11:02

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

Сообщение liername » 22 июл 2019, 19:15

Выскажу свое мнение о мелькавшей тут идее перевести BearLibTerminal на рельсы SDL2.
Лично мое мнение: отличная идея.

Переход на SDL сделает библиотеку стабильней и гарантирует что она будет работать и через 10 лет, так как SDL будет продолжать обновляться под новые версии ОС. Например, линуксы хотят массово перейти на Wayland. Если BearLibTerminal будет работать на SDL, то переход произойдет максимально гладко.
Мне кажется, небольшая зависимость - это наименьшее зло.
К тому же у библиотеки останется самое главное, из-за чего она интересна: поддержка ttf и юникода из коробки + минимализм интерфейса (ну и поддержка фуллскрина, лично для меня).

На данный момент, для тех кто хочет иметь простую библиотеку терминала без лишних наворотов, но с нормальной поддержкой шрифтов и рендерингом через openGL - BearLibTerminal, ИМХО, безальтернативен.

Ответить

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

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