Tou tentando construir uma aplicação de perguntas e respostas, porém estou com problema no código pois não consigo fazer com que os eventos do controle sejam registrados. Já olhei vários tutoriais da linguagem LUA e fiz exatamente como eles ensinam, mesmo assim quando respondo uma pergunta ele não passa para a próxima. Meu código ta abaixo:
function redraw(pergunta, alternativa1, alternativa2, alternativa3, alternativa4)
--Desenhando FUNDO
local regLarg, regAlt = canvas:attrSize()
canvas:attrFont('arial', 30)
local img = canvas:new('media/telaLua.png')
local fundo = { img=img, x=0, y=0, dx=regLarg, dy=regAlt }
canvas:compose(fundo.x, fundo.y, fundo.img)
--DESENHANDO TEXTO
local txt = pergunta
local txtLarg, txtLAlt = canvas:measureText(txt)
local txtX = 10
local txtY = 150
canvas:attrColor('white')
canvas:drawText(txtX, txtY, txt)
--DESENHANDO BOTÕES E ALTERNATIVAS
local botaoA = canvas:new('media/botaoA.png')
local imgLargA, imgAltA = canvas:attrSize()
canvas:compose ((regLarg-imgLargA)+15, 250, botaoA)
local txtA = alternativa1
local txtLargA, txtAltA = canvas:measureText(txtA)
canvas:drawText(100, 250, txtA)
local botaoB = canvas:new('media/botaoB.png')
local imgLargB, imgAltB = canvas:attrSize()
canvas:compose ((regLarg-imgLargB)+15, 300, botaoB)
local txtB = alternativa2
local txtLargB, txtAltB = canvas:measureText(txtB)
canvas:drawText(100, 300, txtB)
local botaoC = canvas:new('media/botaoC.png')
local imgLargC, imgAltC = canvas:attrSize()
canvas:compose ((regLarg-imgLargC)+15, 350, botaoC)
local txtC = alternativa3
local txtLargC, txtAltC = canvas:measureText(txtC)
canvas:drawText(100,350, txtC)
local botaoD = canvas:new('media/botaoD.png')
local imgLargD, imgAltD = canvas:attrSize()
canvas:compose ((regLarg-imgLargD)+15, 400, botaoD)
local txtD = alternativa4
local txtLargD, txtAltD = canvas:measureText(txtD)
canvas:drawText(100,400, txtD)
canvas:flush()
end
function tratador (evt)
local nota = 0
local numPergunta = 1
if numPergunta == 1 then
pergunta = 'Quanto e 2+2?'
alternativa1 = '5'
alternativa2 = '4'
alternativa3 = '3'
alternativa4 = '6'
redraw(pergunta, alternativa1, alternativa2, alternativa3, alternativa4)
if (evt.class == 'key') and (evt.type == 'press') then
if evt.key == 'RED' then
nota = nota + 0
numPergunta = 2
elseif evt.key == 'GREEN' then
nota = nota + 10
numPergunta = 2
elseif evt.key == 'YELLOW' then
nota = nota + 0
numPergunta = 2
elseif evt.key == 'BLUE' then
nota = nota + 0
numPergunta = 2
end
end
end
if numPergunta == 2 then
pergunta = 'Quanto e 5+5?'
alternativa1 = '10'
alternativa2 = '11'
alternativa3 = '9'
alternativa4 = '8'
redraw(pergunta, alternativa1, alternativa2, alternativa3, alternativa4)
if (evt.class == 'key') and (evt.type == 'press') then
if evt.key == 'RED' then
nota = nota + 10
numPergunta = 3
elseif evt.key == 'GREEN' then
nota = nota + 0
numPergunta = 3
elseif evt.key == 'YELLOW' then
nota = nota + 0
numPergunta = 3
elseif evt.key == 'BLUE' then
nota = nota + 0
numPergunta = 3
end
end
end
if numPergunta == 3 then
pergunta = 'Quanto e 20+5?'
alternativa1 = '27'
alternativa2 = '15'
alternativa3 = '13'
alternativa4 = '25'
redraw(pergunta, alternativa1, alternativa2, alternativa3, alternativa4)
if (evt.class == 'key') and (evt.type == 'press') then
if evt.key == 'RED' then
nota = nota + 0
elseif evt.key == 'GREEN' then
nota = nota + 0
elseif evt.key == 'YELLOW' then
nota = nota + 0
elseif evt.key == 'BLUE' then
nota = nota + 10
end
end
end
end
event.register(tratador)
Autor: Victor Laerte Oliveira
22 comentários