Я пишу прогу, которая рисует кнопку, а потом обрабатывает на неё нажатие. Рисовать, то она рисует правильно, но почему-то функция onClick, которая вызывается по ивенту touch не запускается. Вот код:
local com = require"component"
local uc = require"unicode"
local e = require"event"
local term = require"term"
local gpu = com.gpu
----------------
buttons = {}
function drawButton(name,x,y, w, h, bg, fg, text, onBClick)
buttons.name = {}
buttons.name[1] = x
buttons.name[2] = y
buttons.name[3] = w
buttons.name[4] = h
buttons.name[5] = onBCLick
oldbg = gpu.getBackground()
oldfg = gpu.getForeground()
gpu.setBackground(bg)
gpu.setForeground(fg)
gpu.fill(x, y, w, h, " ")
gpu.set(x,math.max(y,h)/2 - math.min(y, h)/2, text)
gpu.setBackground(oldbg)
gpu.setForeground(oldfg)
end
local function onClick(_,_, x, y, ...)
for name in buttons do
print(x.." "..name[1].." "..name[3].." ".. y.." "..name[2].." ".. name[4])
if x >= name[1] and x <= name[3] and y >= name[2] and y <= name[4] then
name[5]()
end
end
end
local function lol()
require"computer".shutdown(false)
end
e.listen("touch", onClick)
local w, h = gpu.getResolution()
drawButton("lol", 1, 1, w/2, h/2, 0x00FF00, 0x000000, "lol", lol)
while true do
io.read()
end
Я пишу прогу, которая рисует кнопку, а потом обрабатывает на неё нажатие. Рисовать, то она рисует правильно, но почему-то функция onClick, которая вызывается по ивенту touch не запускается. Вот код:
Изменено пользователем 1kovand1Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах