11.07.2015 Views

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Conforme a Listag<strong>em</strong> 18.15, o logotipo de Lua é representado pela tabelalogoLua, guardando o canvas com a imag<strong>em</strong> lua.png, as coordenadas x e yonde ela deve ser desenhada, e sua largura e altura. A tabela logoNcl guardaos mesmos atributos (mas para a imag<strong>em</strong> ncl.png) para representar o logotipode <strong>NCL</strong>.A Listag<strong>em</strong> 18.16 define a função de redesenho da tela, chamada durante aexecução do <strong>NCL</strong>ua toda vez que o usuário movimenta o logotipo de Lua.S<strong>em</strong>pre que chamada, a função redraw desenha um retângulo preto ocupandoa região inteira (para limpá-la) e <strong>em</strong> seguida compõe os canvas das duastabelas logoNcl e logoLua, sobre o canvas principal, <strong>em</strong> suas posiçõescorrentes.function redraw ()canvas:attrColor('black')canvas:drawRect('fill', 0,0, canvas:attrSize())canvas:compose(logoNcl.x, logoNcl.y, logoNcl.canvas)canvas:compose(logoLua.x, logoLua.y, logoLua.canvas)canvas:flush()endListag<strong>em</strong> 18.16 Segunda parte do código <strong>NCL</strong>ua do Ex<strong>em</strong>plo 18.3.Por fim, a Listag<strong>em</strong> 18.17 define a função tratadora de eventos,responsável por tratar as teclas do controle r<strong>em</strong>oto e por sinalizar, aodocumento <strong>NCL</strong>, o momento <strong>em</strong> que os logotipos se sobrepõ<strong>em</strong>.function tratador (evt)-- apenas eventos de tecla interessamif evt.class == 'key' and evt.type == 'press'then-- apenas as setas que mov<strong>em</strong> o logotipo Luainteressamif evt.key == 'CURSOR_UP' thenlogoLua.y = logoLua.y - 10elseif evt.key == 'CURSOR_DOWN' thenlogoLua.y = logoLua.y + 10elseif evt.key == 'CURSOR_LEFT' thenlogoLua.x = logoLua.x - 10elseif evt.key == 'CURSOR_RIGHT' thenlogoLua.x = logoLua.x + 10end-- testa se os logotipos estão sobrepostosif sobrepondo(logoLua, logoNcl) then-- sinaliza que a ancora "chegou" esta ocorrendo391

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!