quarta-feira, 3 de abril de 2013

Criando elemento controlável pelo teclado

A ideia é fornecer princípios de controle com teclado para posteriormente criar um jogo.
Primeiro vamos criar uma janela para exibição dos elementos, da forma mais eficiente possível, como mostra esse vídeo:


depois disso, dentro do construtor  adiciona KeyListener apenas com evento keyPressed:


 this.addkeyListener(new KeyAdapter(){  
    public void keyPressed(KeyEvent e){  
      // tratamento  
    }  
 });  

agora vamos analisar se ele apertou teclas das setas, assim:


 switch(e.getKeyChar()){  
   case KeyEvent.VK_UP:  
   case KeyEvent.VK_RIGHT:  
   case KeyEvent.VK_LEFT:  
   case KeyEvent.VK_DOWN:  
 }  

e vamos adicionar o elemento  que será controlado pelas setas: um quadradinho:


 JPanel p = new JPanel():  
 p.setSize(10,10);  
 p.setLocation(new Point(1,1)):  
 add(p);  

e agora é so implementar movimento com setBounds( x, y, width, height):


 switch(e.getKeyChar()){   
   case KeyEvent.VK_UP:   
     p.setBounds(p.getX(),p.getY()-10,10,10);  
     break;  
   case KeyEvent.VK_RIGHT:   
     p.setBounds(p.getX()+10,p.getY(),10,10);  
     break;  
   case KeyEvent.VK_LEFT:   
     p.setBounds(p.getX()-10,p.getY(),10,10);  
     break;  
   case KeyEvent.VK_DOWN:   
     p.setBounds(p.getX(),p.getY()+10,10,10);  
     break;  
  }   

Pronto. Rode o programa, e ao apertar setas o pontinho quadrado irá se mover na tela. Mas se voce estiver no final da janela ou no começo, e andar mais, irá sair fora da janela. Agora um desafio a você: implementar isso.

~ass: g;