Uni_X
Хоспаде
Uni_X
Это прекрасно
Uni_X
Я не знал что снусмумрик либы пишет
Luсky
Ща вот соображу, как реакции выводить курсивом после описания.
UtoECat
Ща вот соображу, как реакции выводить курсивом после описания.
реакции кого? Персонажей или персонажа игрока? Или...?
Igor
Я не знал что снусмумрик либы пишет
На гитхабе валяются, ну и на пасте еще
Igor
Можешь тут поискать по ссылкам
Igor
100% кидалось
UtoECat
Любой.
не, курсив в терминале не так просто будет сделать... Только жирный/не жирный, поменять цвет, фон, и т.д. https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 окей... я видимо либо воспоминаниями в далёком прошлом застрял... ну или у меня были всегда кривые шрифты... 💀 но курсив есть...
UtoECat
не, курсив в терминале не так просто будет сделать... Только жирный/не жирный, поменять цвет, фон, и т.д. https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 окей... я видимо либо воспоминаниями в далёком прошлом застрял... ну или у меня были всегда кривые шрифты... 💀 но курсив есть...
хоть и вот эти последовательности из тырнетика работают в Gnome terminal, в моём (kitty) они работают не все, как можно увидеть. Если ты хочешь большей совместимости - лучше не делать курсивный текст) окей, у меня что-то со шрифтами терминала не так, но в любом случае...
Snusmumriken
Snusmumriken
WDMR
Я только либы и пишу
Библиотекарь 🤓
Oleg
Библиотекарь 🤓
Хочешь помочь Библиотекарю?
Uni_X
Хочешь помочь Библиотекарю?
Звучит как угроза...
Oleg
Это прекрасно!
Snusmumriken
Я вот такое терзаю со снусовой либой terminal
Под вендой оно тоже работает начиная с win10, если прописать os.execute"chcp 65001"
Snusmumriken
До этого приходилось цеплять ffi и переключать окно терминала в режим обработки escape-последовательностей
Luсky
Обожаю love и curses!
Это чистый луажыт в консоли.
UtoECat
Это чистый луажыт в консоли.
не, это переписывание ncurses на lua 🤣
Luсky
Есть способ получить х,у координаты курсора, после вывода строки?
Snusmumriken
Есть способ получить х,у координаты курсора, после вывода строки?
Вообще как бы можно, через подсчет символов и сдвигов туда-сюда.
UtoECat
Есть способ получить х,у координаты курсора, после вывода строки?
я ж кидал ссыль на все последовательности) выдаёт оно это тебе в stdin.
Snusmumriken
я ж кидал ссыль на все последовательности) выдаёт оно это тебе в stdin.
Есть косяк в том, что не совсем в stdin, и у луёв проблемы с получением этих данных.
Luсky
Хотя, это что-то черезж я пирдумал. Можно же просто сформировать строку с меткой заранее, а не подсчитывать высчитывать
Snusmumriken
Зацени кстати фигню
Snusmumriken
Можно рисовать в этой ерунде и рендерить в ловке. https://www.gridsagegames.com/rexpaint/index.html
Luсky
Круто!
Luсky
И в сонсоле тоже можно?
Snusmumriken
Найн, оно для опенгла и использует графические шрифты
Snusmumriken
Luсky
Ну, тоже норм.
Snusmumriken
Можно заменять на тайлики при желании.
Snusmumriken
Есть вот такой вот чарсет, и его можно заменить на произвольный. Всё что ты пишешь на дисплее — отсюда вытягиваются символы, и им сопоставляются квады с нарезанного шрифта, и устанавливаются в соответствующие позиции на слое.
Snusmumriken
Ну по сути это тулкит для рогаликов. Внутре есть слои, можно поделить на "слой для игрули", "слой для гуя" и "слой для более верхнего гуя", "слой для партиклов" чтобы были искорки и граф-эффекты из символов и т.д.
Luсky
Платформер тоже можно
Snusmumriken
Можно
Snusmumriken
Но общая суть чтобы делать вот так вот
Snusmumriken
https://www.gridsagegames.com/blog/2014/03/particle-effects/
Snusmumriken
Вот такое вот всякое
Luсky
Хорошее!
Snusmumriken
А если хотим графония, то просто заменяем пикчу со шрифтом на пикчу с тайликами
UtoECat
Snusmumriken
Лялекс.
UtoECat
Лялекс.
ну на винде всё не так просто, это да... там уже ffi активно дёргать придётся... Поэтому действительно лучше "свою сонсольку" силами ловки той-же сделать или взять готовое, шоб переносимо было без головной боли.
Snusmumriken
Под вендой есть что-то подобное, но используется через такую задницу, что проще ffi. Собственно, curses придумывали не просто так.
Snusmumriken
Подскажи, как корректно дёргать terminal:format?
str = term:format("Hello", { bold = true, negate = true, color = {"black", "red"} -- text/backgr })
Snusmumriken
Если только цвет текста то color = "red".
Snusmumriken
Правда, в format нельзя задавать rgb, надо бы расширить на него.
Snusmumriken
Но есть terminal:setTextColor(r, g, b) и его должно быть можно комбинировать, а ля: terminal:setTextColor(255, 20, 255) io.write(terminal:format(...)) -- без цвета Вообще, пора бы эту фигню дополнить кучей апишек мелких.
Snusmumriken
Я вообще хотел немножко унифицировать, чтобы было "а ля как в ловке со стейтом :setColor(...)", но ещё и добавить возможность не перерендеривать лишнее, и сделать что-то типа "вот эта строка будет прямоугольником, и мы можем рендерить его на любых координатах сколько угодно раз". И оно малясь смешалось. Давно делал.
Snusmumriken
Формат или комбинирование?
Lucky
Snusmumriken
Звучит как повод прогнать текст через автопереносилку
Snusmumriken
И ещё влепить скроллинг и обрезку
Lucky
Это да.
Lucky
А вот ещё закавыка
Snusmumriken
Ты рендеришь на фиксированных координатах?
Lucky
Snusmumriken
Кароч, смотри. У тебя есть текст который "Посреди пещеры". Его можно переписать подчистую, добавив реакцию toTextBlock(text .. "\n\n" .. text:format(...))
Snusmumriken
Фигня в том, что ты можешь наслаивать одно на другое без особых ограничений.
Snusmumriken
Допустим, тебе нужно раскрасить прямоугольник. local rect = term:rectangle(10, 10, "#") local colorecrect = terminal:format(rect, {color = "red"}) term:setPosition(10, 10) io.write(coloredrect)
Lucky
Ну, у меня чота рубится форматированиепосле первой строки, когда я скармливаю многострочную строку функции format.
Snusmumriken
А, видю, хмм.
Lucky
Я её немножко обмазал local add_style1 = function(text) local str = terminal:format(text, { -- bold = true, italic = true, negate = true, color = {"black", "red"}, }) return str end;