Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 11.05.2015 во всех областях

  1. 1 балл
    Итак, это снова я, сегодня я расскажу как делать более сложные вещи с Lua в OC, а именно: Очистка экрана; Коробочки; Кнопки. Ну что-же, приступим Вспомним-ка мы подключение API GPU. --Старый вариантlocal component = require("component")local gpu = component.gpu--Новый вариантlocal gpu = require("component").gpu Как вы видите теперь можно проще подключать API GPU. Очистка экрана. local w,h = gpu.getResolution() -- Узнаем разрешение монитораgpu.fill(1,1,w,h," ") --[[Тут мы заполняем пустым символом поле, начиная от верхнего левого угла экрана и заканчивающегося правым нижним углом. Проще говоря весь экран заполняем пустотой. Перед этой строкой можно указать и цвет фона/символов. Так можно добиться ромашек цветного фона.]]-- Напишем для удобства функцию. function clear(color_bg, color_fg) local w,h = gpu.getResolution() -- Узнаем разрешение монитора local oldbg = gpu.getBackground() -- Для того, чтобы потом вернуть старый local oldfg = gpu.getForeground() -- цвет фона и символов. gpu.setBackground(color_bg) -- Устанавливаем цвет фона. gpu.setForeground(color_fg) -- Устанавливаем цвет символов. gpu.fill(1,1,w,h, " ") -- Заполняем экран пустотой. gpu.setBackground(oldbg) -- Восстанавливаем старый цвет фона. gpu.setForeground(oldfg) -- Восстанавливаем старый цвет символов.end Выглядит сложно, но на самом деле это просто. =) Коробочка function box(x,y,w,h,bg,fg,symb) -- Оставить symb " " и получится чистая коробка local oldbg = gpu.getBackground() local oldfg = gpu.getForeground() gpu.setBackground(color_bg) gpu.setForeground(color_fg) gpu.fill(x,y,w,h, symb) -- Рисуем боксик gpu.setBackground(oldbg) gpu.setForeground(oldfg) end Все просто и легко. =) Кнопка (будет сложно) local unicode = require("unicode") -- Нам потребуется юникод...-- Рисуем кнопку.function drawButton(x,y,bg,fg,text) local oldbg = gpu.getBackground() local oldfg = gpu.getForeground() gpu.setBackground(color_bg) gpu.setForeground(color_fg) gpu.set(x,y,text) -- Кнопка - текст с фоном. =) gpu.setBackground(oldbg) gpu.setForeground(oldfg) enddrawButton(2,2,0xff0000, 0x00ff00, "PressMeToWin")-- Обрабатывать клик будем по японский, можно использовать event.listen, но я для простоты использую event.pullwhile true do local name, add, xP, yP, b = event.pull("touch") if name ~= nil then if xP >= 2 and yP = 2 and xP <= 2 + unicode.len("PressMeToWin") then -- Тут сложно--Если нажали то... Например напишем "Ok" gpu.set(1,20, "Ok!") os.sleep(2) -- Спатки 2 секунды gpu.fill(1,20,10,10, " ") -- Очистить то, что написали end endend Как-то так. =) Пруф. =)
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...