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.

event.post {class = 'ncl',type = 'presentation',label = 'chegou',action = 'start',}endredraw() -- redesenha a tela inteiraendendevent.register(tratador)Listag<strong>em</strong> 18.17 Terceira parte do código <strong>NCL</strong>ua do Ex<strong>em</strong>plo 18.3.Na Listag<strong>em</strong> 18.17, o script inicia testando se alguma das teclas direcionaisfoi pressionada (campo key do evento de tecla), alterando a posição dologotipo de Lua de acordo com a tecla. Caso os logotipos estejam sesobrepondo, é postado o evento para sinalizar que a âncora “chegou” iniciou.A função “sobrepondo” foi omitida s<strong>em</strong> prejuízo do entendimento. Por fim, atela é redesenhada, qualquer que seja a tecla que tenha sido pressionada.Em um evento da classe key, o valor da tecla é uma string, guardada nocampo key. O campo type pode ser ‘press’ ou ‘release’, dependendo de atecla ter sido pressionada ou solta.18.4.1 <strong>Programando</strong> com AnimaçõesImagin<strong>em</strong>os agora que o logotipo de Lua fosse movimentado com o passardo t<strong>em</strong>po, como <strong>em</strong> uma animação, <strong>em</strong> vez de ser guiado pelo controler<strong>em</strong>oto. Ao receber a instrução de “start”, o trecho hipotético da Listag<strong>em</strong>18.18 atualiza a posição do logotipo a cada 30 milissegundos, até que suaposição chegue a 100.function tratador (evt)if evt.action == 'start' thenwhile logoLua.x < 100 dologoLua.x = logoLua.x + 5redraw()sleep(30)endendendevent.register(tratador, 'ncl', 'presentation')Listag<strong>em</strong> 18.18 Ex<strong>em</strong>plo (ruim) de animação <strong>em</strong> <strong>NCL</strong>ua.392

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

Saved successfully!

Ooh no, something went wrong!