Griffi 17 Опубликовано: 22 сентября, 2020 (изменено) https://pastebin.com/4BXZP7FZ Использует шрифт Брайля Скрины: Скрытый текст Пример: Скрытый текст require'term'.clear() --очистить экран ----------------- --Graphics = require("путь к библиотеке")(Ширина в символах,Высота в символах) --По умолчанию ширина и высота - размер экрана local g = require('graphics')() --graphics:getWidth() - Возвращает ширину в пикселях local width = g:getWidth() --graphics:getHeight() - Возвращает высоту в пикселях local height = g:getHeight() --graphics:getDimensions() - Возвращает ширину и выстоту в пикселях local w,h = g:getDimensions() --graphics:reset() --Очищает (но не перерисовывает) экран. g:reset() --graphics:drawLine(x1:number*, y1:number*, x2:number*, y2:number*, erase:bool) --Рисует линию с точки (x1,y1) до (x2,y2) g:drawLine(10,15,50,80) --graphics:oldLine(x1:number*, y1:number*, x2:number*, y2:number*, erase:bool) --То же что и drawLine, но использует старый (очень кривой) алгортм --graphics:fastLine(x:number*, y:number*, vx:number*, vy:number*, d:number*, erase:bool) --Рисует линию с точки (x1,y1) в направлении (vx,vy) d шагов (длина). --Немного быстрее, чем graphics.drawLine --vx и vy (направление) это два числа от -1 до 1. --Наример, (1,0) это направо, (0,1) это вниз, а (-1,1) это влево-вниз g:fastLine(20,10,1,0,20) --graphics:drawRect(x:number*, y:number*, w:number*, h:number*, fill:bool, erase:bool) --Рисует прямоугольник в точке (x,y) с шириной w и высотой h --Если fill==true, то прямоугольник будет заполнен g:drawRect(50,50,10,10) g:drawRect(50,70,10,10,true) --g:setPixel(x:number*, y:number*, v:bool) --Установить значение пикселя (x,y) g:setPixel(40,40,true) --g:getPixel(x:number*, y:number*) --Получить значение пикселя (x,y) g:getPixel(40,40) --> true --graphics:newSprite(spriteData:string*) --Создать спрайт --формат:[w (1 байт)][h(1 байт)][...data...(w*h бит)] local mushroom=g:newSprite('\16\16\7\224\29\184\49\140\115\206\95\250\204\51\136\17\136\17\152\25\252\63\255\255\242\79\98\70\32\4\48\12\31\248') --Sprite:getWidth() --Возвращает ширину справйта local mushroom_width = mushroom:getWidth() --Sprite:getHeight() --Возвращает высоту справйта local mushroom_height = mushroom:getHeight() --Sprite:getDimensions() --возвращает ширину и высоту спрайта mushroom_width,mushroom_height = mushroom:getDimensions() --graphics:drawSprite(sprite:Sprite*,x:number*,y:number*) --Рисует спрайт в точке (x,y) g:drawSprite(mushroom,50,50) g:drawSprite(mushroom,100,60) --graphics:redraw(x:number,y:number) --Перерисовать всё. --(x,y) - координаты для отрисовки --graphics:draw(x:number,y:number) --Перерисовать только измененные символы. (Гораздо быстрее, чем redraw) g:draw() ----------------- os.sleep(2) Изменено 28 сентября, 2020 пользователем Griffi v6/исправил ошибку 9 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 23 сентября, 2020 Для рисования линий рекомендую алгоритм Брезенхема. Не использует тригонометрию и линия на много ровнее получается. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Griffi Автор темы 17 Опубликовано: 23 сентября, 2020 9 часов назад, Zer0Galaxy сказал: Для рисования линий рекомендую алгоритм Брезенхема. Не использует тригонометрию и линия на много ровнее получается. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Griffi Автор темы 17 Опубликовано: 26 сентября, 2020 В 23.09.2020 в 08:35, Zer0Galaxy сказал: Для рисования линий рекомендую алгоритм Брезенхема. Не использует тригонометрию и линия на много ровнее получается. Добавил. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Griffi Автор темы 17 Опубликовано: 26 сентября, 2020 Версия 3: Новый аглоритм для отриcовки линий Версия 4: autoDraw теперь не перерисовывает символ если он не изменился 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Griffi Автор темы 17 Опубликовано: 27 сентября, 2020 Версия 5: Убрал autodraw Сильно ускорил отрисовку 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Griffi Автор темы 17 Опубликовано: 27 сентября, 2020 (изменено) Версия 6: Добавил поддержку спрайтов! Исправил 2 бага. Изменено 28 сентября, 2020 пользователем Griffi 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic 51 Опубликовано: 31 января, 2022 КАК? че за браиль такой, и де он живет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bs0Dd 206 Опубликовано: 31 января, 2022 (изменено) 17 минут назад, rootmaster сказал: КАК? че за браиль такой, и де он живет https://ru.wikipedia.org/wiki/Шрифт_Брайля В опенкомпах получаются по стандартным юникодовским адресам Изменено 31 января, 2022 пользователем Bs0Dd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
logic 51 Опубликовано: 31 января, 2022 33 минуты назад, Bs0Dd сказал: https://ru.wikipedia.org/wiki/Шрифт_Брайля В опенкомпах получаются по стандартным юникодовским адресам прикольно, но юзать я эта вряд ли буду Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах