Ir para o conteúdo

 Voltar a Linguagem Lua
Tela cheia

Problema em receber um novo evento do controle

15 de Novembro de 2011, 22:42 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 9 vezes

O meu código é simples, são 3 perguntas que devem ser respondidas com os botões de interação, porém quando respondo a primeira pergunta a KEY que eu responder, responde automaticamente as as outras duas perguntas. 

Por exemplo, respondo a primeira pergunta com RED, ao invés dele desenhar a nova pergunta e esperar que o usuário digite um novo botão, ele ja responde todas as perguntas restantes tb com RED.

Queria saber como arrumar isso, colocar um tipo "readln" pra o código ficar esperando que um novo botão seja pressionado.

 Segue código Lua abaixo:

 

 function redraw(pergunta, alternativa1, alternativa2, alternativa3, alternativa4)

canvas:clear()

--Desenhando FUNDO

local regLarg, regAlt = canvas:attrSize()

canvas:attrFont('arial', 20)

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, txtAlt = canvas:measureText(txt)

local txtX = 10

local txtY = 175

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


-- DESENHA NOTA

function desenhaNota(nota)

local txtNota = 'Nota: ' .. nota

local txtLargNota, txtAltNota = canvas:measureText(txtNota)

canvas:drawText(400,300, txtNota)

canvas:flush()

end


function tratador (evt)


print ("entrou funcao tratador")


if (numPergunta == 1) then

print ("entrou if 1")

pergunta = 'Em qual ano chegou a primeira expedicao oficial portuguesa ao Brasil?' 

alternativa1 = '1500'

alternativa2 = '1501'

alternativa3 = '1349'

alternativa4 = '1530'

alternativaCerta = 'B'

end


if (numPergunta == 2) then


print ("entrou if 2")

pergunta = 'Qual rei frances ficou conhecido por apoiar o contrabando de pau Brasil?'

alternativa1 = 'Francisco I'

alternativa2 = 'Dom Pedro I'

alternativa3 = 'Henrique VIII'

alternativa4 = 'Elizabeth II'

alteranativaCerta = 'A'

end


if (numPergunta == 3) then


print ("entrou if 3")

pergunta = 'Por quem foi comandada a primeira expedicao colonizadora enviada ao Brasil por Portugal?'

alternativa1 = 'Joao Vaz Corte Real'

alternativa2 = 'Pedro Alvares Cabral'

alternativa3 = 'Vasco da Gama'

alternativa4 = 'Martin Afonso de Souza'

alternativaCerta = 'D'

end


redraw(pergunta, alternativa1, alternativa2, alternativa3, alternativa4)

if (evt.key == 'RED') and (alternativaCerta == 'A') then

print ("entrou resposta A")

nota = nota + 10

numPergunta = numPergunta + 1

return

elseif (evt.key == 'GREEN') and (alternativaCerta =='B') then

print ("entrou resposta B")

nota = nota + 10

numPergunta = numPergunta + 1

return

elseif (evt.key == 'YELLOW') and (alternativaCerta =='C') then

print ("entrou resposta C")

nota = nota + 10

numPergunta = numPergunta + 1

return

elseif (evt.key == 'BLUE') and (alternativaCerta == 'D') then

print ("entrou resposta D")

nota = nota + 10

numPergunta = numPergunta + 1

return

else

print ("entrou else")

nota = nota + 0

numPergunta = numPergunta + 1

return

end

if (numPergunta == 4) then

print ("entrou if nota")

desenhaNota(nota)

end

end


-- CODIGO LUA

nota = 0

numPergunta = 1

event.register(tratador) 

Autor: Victor Laerte Oliveira


Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo