local component = require("component")
local gpu = component.gpu
local rs = component.redstone
local e = require('event').pull
local W, H = gpu.getResolution()
local b_color, f_color = gpu.getBackground(), gpu.getForeground()
local tButtons = {
{
visible = false,
X = 5,
Y = 5,
W = 6,
H = 3,
color = 0x3a3636,
textColor = 0x000033,
text = "start"
},
{
visible = false,
X = W-5,
Y = H-35,
W = 1,
H = 1,
color = 0x001111,
textColor = 0x9c0d06,
text = "X"
}
}
local function drawButton(n)
gpu.setBackground(tButtons[n].color)
gpu.setForeground(tButtons[n].textColor)
gpu.fill(tButtons[n].X, tButtons[n].Y, tButtons[n].W, tButtons[n].H, ' ')
gpu.set(tButtons[n].X+(tButtons[n].W/2)-(#tButtons[n].text/2), tButtons[n].Y+(tButtons[n].H/2), tButtons[n].text)
end
local function refresh(n)
gpu.setBackground(b_color)
gpu.fill(tButtons[n].X, tButtons[n].Y, tButtons[n].W, tButtons[n].H, ' ')
drawButton(n)
end
gpu.fill(1, 1, W, H, ' ')
for i = 1, #tButtons do
refresh(i)
end
while true do
local tEvent = {e('touch')}
for i=1, #tButtons do
if tEvent[3] >= tButtons.X and tEvent[3] <= tButtons.X+tButtons.W and tEvent[4] >= tButtons.Y and tEvent[4] <= tButtons.Y+tButtons.H then if tButtons.text == "start" then os.sleep(120) rs.setOutput(1,15) tButtons.text = "stop" refresh(i) goto continue end if tButtons.text == "stop" then tButtons.text = "start" rs.setOutput(1,0) refresh(i) goto continue end if tButtons.text == "X" then for n=1,#tButtons do gpu.setBackground(0x00000) gpu.setForeground(0xffffff) gpu.fill(0, 0, W, H, ' ') end os.exit() end ::continue:: end end end
Его задача: нажать на кнопку и после 120 секунд он выдаёт красный сигнал но не в этом суть... как сделать так что бы os.sleep(120) не ждала вся система а ждал только сам таймер ( просто после нажатия на кнопку "start" кнопка остаётся прежней, но только по истечению 120 секунд она меняется на "stop" )
моя подруга сделала вот такой код:
Его задача: нажать на кнопку и после 120 секунд он выдаёт красный сигнал
Изменено пользователем _bongo_но не в этом суть...
как сделать так что бы os.sleep(120) не ждала вся система
а ждал только сам таймер
( просто после нажатия на кнопку "start" кнопка остаётся прежней, но только по истечению 120 секунд она меняется на "stop" )
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах