Assim o PONG apresentado no post http://modoseguranca.blogspot.pt/2012/05/pong-em-flash-as30.html sofreu uma atualização que permite controlar a raquete do jogador através de dois botões no palco.
Para podermos controlar os botões mantendo o dedo premido e não ser necessário fazer sucessivos "cliques" com o dedo é necessário criar uma variável para cada botão que indica se o botão foi premido e ainda não foi libertado, uma simples boolean permite implementar este mecanismo.
var cima_on:Boolean=false;
var baixo_on:Boolean=false;
Depois na função que movimenta a bola, que está associada a um timer adicionamos o seguinte código:
/*Raquete do jogador*/
if (cima_on){
if(jogador1.y>0) jogador1.y -=5;
dir_j1=-5;
}
if (baixo_on){
if(jogador1.y<370) jogador1.y +=5;
dir_j1=5;
}
Caso seja necessário pode ser criado outro timer, mas para este pequeno exemplo não vamos complicar mais o código.
Precisamos de controlar os eventos mouse down e mouse up nos botões, assim criamos dois event listener para cada botão:
cima.addEventListener(MouseEvent.MOUSE_DOWN,Click_cima_on);
cima.addEventListener(MouseEvent.MOUSE_UP,Click_cima_off);
baixo.addEventListener(MouseEvent.MOUSE_DOWN,Click_baixo_on);
baixo.addEventListener(MouseEvent.MOUSE_UP,Click_baixo_off);
O código das funções é muito simples, só altera o conteúdo da variável que indica o estado de cada botão:
/*Funções que são chamadas quando os botões são clicados*/
function Click_cima_on(event:MouseEvent):void
{
cima_on=true;
}
function Click_cima_off(event:MouseEvent):void
{
cima_on=false;
}
function Click_baixo_on(event:MouseEvent):void
{
baixo_on=true;
}
function Click_baixo_off(event:MouseEvent):void
{
baixo_on=false;
}
E pronto temos uma nova versão do PONG para ecrãs táteis.
O projeto atualizado está aqui.