Страница 51 из 51

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

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

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

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

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

Добавлено: 01 ноя 2018, 07:34
Apromix
А как сделать счелчок мышкой по слову?

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

Добавлено: 22 янв 2019, 07:16
Apromix
Кто-то знает, как можно организовать плавный полет стрелы/болта в терминале?

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

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

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

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

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

Добавлено: 16 фев 2019, 07:57
altmax
Cfyz писал(а):
22 янв 2019, 17:18

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

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

Добавлено: 23 фев 2019, 17:00
altmax
Подумал, что реализовать плавное перемещение героя будет не так просто - как правило он всегда в центре отображаемой карты, и придется плавно скроллить всю карту, а его оставлять на месте.

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

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

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

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

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

Добавлено: 22 июл 2019, 19:15
liername
Выскажу свое мнение о мелькавшей тут идее перевести BearLibTerminal на рельсы SDL2.
Лично мое мнение: отличная идея.

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

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