JAVA GAMES 2D::Eventos do Mouse::13
"
Olá pessoal!
Lembrem de adicionar a implementação dos métodos dessas interfaces, observem que podemos implementar quantas interfaces quisermos, bastando apenas separar por virgula, então é possível usar eventos de teclado e mouse num mesmo jogo...
Agora veja os método que serão implementados no final da Classe Game.java:
Recomendo apagar esses comentários gerados (caso você tenha mandado gerar automaticamente), Muito bem... vamos lá....
Os métodos mouseMoved() e mouseDragged() são da interface MouseMotionsListener, e os outros métodos são de MouseListener, bem... vejamos para quê serve cada um desses eventos:
mouseMoved(): é acionado todo vez que você mover o mouse.
mouseDragged(): é acionado toda vez que você clica segura e arrasta.
mouseReleased(): é acionado quando você libera o clique.
mousePressed(): é acionado no momento em quê o clique é pressionado e mantamos pressionado.
mouseExited(): é acionado quando o cursor é retirado de cima de um elemento.
mouseEntered(): é acionado quando o cursor ficar sobre um elemento.
mouseClicked(): é acionando quando clicamos com o mouse.
Agora a próxima etapa é adicionar um escutador para esses eventos no nosso JFrame dentro do método inicializar(), se não adicionarmos esses escutadores nenhum desses métodos serão executados quando os eventos forem acionados (lembrando, o escutador é que manda executar esses métodos quando o evento for acionado).
Observe o código abaixo:
Muito simples! não é?
Agora vamos ver um exemplo de uso de eventos do mouse, no nosso exemplo iremos mover uma mira, exibir as coordenadas do cursor no JFrame e quando clicarmos exibir uma mensagem!
(LEIAM OS COMENTÁRIOS DO CÓDIGO COM ATENÇÃO)
Veja como ficou:
Muito simples não é ?
Até o próximo tutorial!!! não deixem de comentar ou tirar duvidas! (assim que dé, respondo!!!)"
Olá pessoal!
Nesse tutorial iremos aprender uma das maneiras de como usar os Eventos do Mouse, é muito semelhante ao tutorial anterior de Eventos do Teclado, para o nosso tutorial de hoje utilizaremos duas Interfaces: MouseListener e MouseMotionListener.
(Criem um pacote tutorial13 no nosso projeto JAVAGAMES2D com o arquivo Game.java)
Muito bem....Vamos lá!
A primeira coisa a ser feita é implementar as interfaces na nossa Classe Game.java
public class Game extends JFrame implements MouseListener, MouseMotionListener{
Lembrem de adicionar a implementação dos métodos dessas interfaces, observem que podemos implementar quantas interfaces quisermos, bastando apenas separar por virgula, então é possível usar eventos de teclado e mouse num mesmo jogo...
Agora veja os método que serão implementados no final da Classe Game.java:
@Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseMoved(MouseEvent e) { // TODO Auto-generated method stub }
Recomendo apagar esses comentários gerados (caso você tenha mandado gerar automaticamente), Muito bem... vamos lá....
Os métodos mouseMoved() e mouseDragged() são da interface MouseMotionsListener, e os outros métodos são de MouseListener, bem... vejamos para quê serve cada um desses eventos:
mouseMoved(): é acionado todo vez que você mover o mouse.
mouseDragged(): é acionado toda vez que você clica segura e arrasta.
mouseReleased(): é acionado quando você libera o clique.
mousePressed(): é acionado no momento em quê o clique é pressionado e mantamos pressionado.
mouseExited(): é acionado quando o cursor é retirado de cima de um elemento.
mouseEntered(): é acionado quando o cursor ficar sobre um elemento.
mouseClicked(): é acionando quando clicamos com o mouse.
Agora a próxima etapa é adicionar um escutador para esses eventos no nosso JFrame dentro do método inicializar(), se não adicionarmos esses escutadores nenhum desses métodos serão executados quando os eventos forem acionados (lembrando, o escutador é que manda executar esses métodos quando o evento for acionado).
Observe o código abaixo:
public void inicializar() { setTitle("Titulo do Jogo!"); setSize(janelaW, janelaH); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); setVisible(true); backBuffer = new BufferedImage(janelaW, janelaH, BufferedImage.TYPE_INT_RGB); //AQUI ESTAMOS ADICIONANDO OS ESCUTADORES DE EVENTOS DO MOUSE addMouseListener(this); addMouseMotionListener(this); }
Muito simples! não é?
Agora vamos ver um exemplo de uso de eventos do mouse, no nosso exemplo iremos mover uma mira, exibir as coordenadas do cursor no JFrame e quando clicarmos exibir uma mensagem!
(LEIAM OS COMENTÁRIOS DO CÓDIGO COM ATENÇÃO)
import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.image.BufferedImage; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Game extends JFrame implements MouseListener, MouseMotionListener{ BufferedImage backBuffer; int FPS = 30; int janelaW = 500; int janelaH = 500; //VARIAVEIS QUE VAMOS UTILIZAR //UMA IMAGEM PARA REPRESENTAR A MIRA //E AS SUAS COORDENADAS X e Y //NÃO SE ESQUEÇA DE OLHAR O MÉTODO desenharGraficos() //e os métodos de eventos que é onde iremos tratar algumas coisas ImageIcon mira = new ImageIcon("src/tutor13/mira.png"); int xMira; int yMira; public void atualizar() { } public void desenharGraficos() { Graphics g = getGraphics(); //ISSO JÁ ESTAVA AQUI Graphics bbg = backBuffer.getGraphics();//ISSO TAMBÉM JÁ ESTAVA AQUI... bbg.setColor(Color.WHITE); bbg.fillRect(0, 0, janelaW, janelaH); //PINTA O FUNDO COM UM QUADRADO BRANCO bbg.setColor(Color.RED); bbg.setFont(new Font("helvica",Font.BOLD,20)); bbg.drawString("X=: "+xMira+" Y="+yMira, 50, 100); //EXIBE UM TEXTO + O VALOR DA TECLA PRESSIONADA //QUE ESTÁ NA VARIÁVEL teclaPressionada //AQUI DESENHAMOS A MIRA, O -25 É PARA FICAR CENTRALIZADA COM O CURSOR bbg.drawImage(mira.getImage(), xMira-25, yMira-25, this); //================================================================================== g.drawImage(backBuffer, 0, 0, this);//OBS: ISSO DEVE FICAR SEMPRE NO FINAL! } public void inicializar() { setTitle("Titulo do Jogo!"); setSize(janelaW, janelaH); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); setVisible(true); backBuffer = new BufferedImage(janelaW, janelaH, BufferedImage.TYPE_INT_RGB); //AQUI ESTAMOS ADICIONANDO OS ESCUTADORES DE EVENTOS DO MOUSE addMouseListener(this); addMouseMotionListener(this); } public void run() { inicializar(); while (true) { atualizar(); desenharGraficos(); try { Thread.sleep(1000/FPS); } catch (Exception e) { System.out.println("Thread interrompida!"); } } } public static void main(String[] args) { Game game = new Game(); game.run(); } public void mouseClicked(MouseEvent e) { JOptionPane.showMessageDialog(null, "Você clicou!!!!"); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseDragged(MouseEvent e) { } public void mouseMoved(MouseEvent e) { //AQUI X e Y DA MIRA RECEBE AS COORDENADAS DO CURSOR xMira = e.getX(); yMira = e.getY(); } }
Veja como ficou:
Muito simples não é ?
Até o próximo tutorial!!! não deixem de comentar ou tirar duvidas! (assim que dé, respondo!!!)"
Olá pessoal!
Nesse tutorial iremos aprender uma das maneiras de como usar os Eventos do Mouse, é muito semelhante ao tutorial anterior de Eventos do Teclado, para o nosso tutorial de hoje utilizaremos duas Interfaces: MouseListener e MouseMotionListener.
(Criem um pacote tutorial13 no nosso projeto JAVAGAMES2D com o arquivo Game.java)
Muito bem....Vamos lá!
A primeira coisa a ser feita é implementar as interfaces na nossa Classe Game.java
public class Game extends JFrame implements MouseListener, MouseMotionListener{
Lembrem de adicionar a implementação dos métodos dessas interfaces, observem que podemos implementar quantas interfaces quisermos, bastando apenas separar por virgula, então é possível usar eventos de teclado e mouse num mesmo jogo...
Agora veja os método que serão implementados no final da Classe Game.java:
@Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseMoved(MouseEvent e) { // TODO Auto-generated method stub }
Recomendo apagar esses comentários gerados (caso você tenha mandado gerar automaticamente), Muito bem... vamos lá....
Os métodos mouseMoved() e mouseDragged() são da interface MouseMotionsListener, e os outros métodos são de MouseListener, bem... vejamos para quê serve cada um desses eventos:
mouseMoved(): é acionado todo vez que você mover o mouse.
mouseDragged(): é acionado toda vez que você clica segura e arrasta.
mouseReleased(): é acionado quando você libera o clique.
mousePressed(): é acionado no momento em quê o clique é pressionado e mantamos pressionado.
mouseExited(): é acionado quando o cursor é retirado de cima de um elemento.
mouseEntered(): é acionado quando o cursor ficar sobre um elemento.
mouseClicked(): é acionando quando clicamos com o mouse.
Agora a próxima etapa é adicionar um escutador para esses eventos no nosso JFrame dentro do método inicializar(), se não adicionarmos esses escutadores nenhum desses métodos serão executados quando os eventos forem acionados (lembrando, o escutador é que manda executar esses métodos quando o evento for acionado).
Observe o código abaixo:
public void inicializar() { setTitle("Titulo do Jogo!"); setSize(janelaW, janelaH); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); setVisible(true); backBuffer = new BufferedImage(janelaW, janelaH, BufferedImage.TYPE_INT_RGB); //AQUI ESTAMOS ADICIONANDO OS ESCUTADORES DE EVENTOS DO MOUSE addMouseListener(this); addMouseMotionListener(this); }
Muito simples! não é?
Agora vamos ver um exemplo de uso de eventos do mouse, no nosso exemplo iremos mover uma mira, exibir as coordenadas do cursor no JFrame e quando clicarmos exibir uma mensagem!
(LEIAM OS COMENTÁRIOS DO CÓDIGO COM ATENÇÃO)
import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.image.BufferedImage; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Game extends JFrame implements MouseListener, MouseMotionListener{ BufferedImage backBuffer; int FPS = 30; int janelaW = 500; int janelaH = 500; //VARIAVEIS QUE VAMOS UTILIZAR //UMA IMAGEM PARA REPRESENTAR A MIRA //E AS SUAS COORDENADAS X e Y //NÃO SE ESQUEÇA DE OLHAR O MÉTODO desenharGraficos() //e os métodos de eventos que é onde iremos tratar algumas coisas ImageIcon mira = new ImageIcon("src/tutor13/mira.png"); int xMira; int yMira; public void atualizar() { } public void desenharGraficos() { Graphics g = getGraphics(); //ISSO JÁ ESTAVA AQUI Graphics bbg = backBuffer.getGraphics();//ISSO TAMBÉM JÁ ESTAVA AQUI... bbg.setColor(Color.WHITE); bbg.fillRect(0, 0, janelaW, janelaH); //PINTA O FUNDO COM UM QUADRADO BRANCO bbg.setColor(Color.RED); bbg.setFont(new Font("helvica",Font.BOLD,20)); bbg.drawString("X=: "+xMira+" Y="+yMira, 50, 100); //EXIBE UM TEXTO + O VALOR DA TECLA PRESSIONADA //QUE ESTÁ NA VARIÁVEL teclaPressionada //AQUI DESENHAMOS A MIRA, O -25 É PARA FICAR CENTRALIZADA COM O CURSOR bbg.drawImage(mira.getImage(), xMira-25, yMira-25, this); //================================================================================== g.drawImage(backBuffer, 0, 0, this);//OBS: ISSO DEVE FICAR SEMPRE NO FINAL! } public void inicializar() { setTitle("Titulo do Jogo!"); setSize(janelaW, janelaH); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); setVisible(true); backBuffer = new BufferedImage(janelaW, janelaH, BufferedImage.TYPE_INT_RGB); //AQUI ESTAMOS ADICIONANDO OS ESCUTADORES DE EVENTOS DO MOUSE addMouseListener(this); addMouseMotionListener(this); } public void run() { inicializar(); while (true) { atualizar(); desenharGraficos(); try { Thread.sleep(1000/FPS); } catch (Exception e) { System.out.println("Thread interrompida!"); } } } public static void main(String[] args) { Game game = new Game(); game.run(); } public void mouseClicked(MouseEvent e) { JOptionPane.showMessageDialog(null, "Você clicou!!!!"); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseDragged(MouseEvent e) { } public void mouseMoved(MouseEvent e) { //AQUI X e Y DA MIRA RECEBE AS COORDENADAS DO CURSOR xMira = e.getX(); yMira = e.getY(); } }
Veja como ficou:
Muito simples não é ?
Até o próximo tutorial!!! não deixem de comentar ou tirar duvidas! (assim que dé, respondo!!!)