Countdown

Final Countdown

Faltam dias. Ou segundos.

sexta-feira, 17 de abril de 2015

#15) Programação gráfica em Java: Desenhos

Hoje venho apresentar os primeiros resultados do jogo de tiro sobre o qual falei no último post, referente ao projeto Bizuca. Vou apresentar a principal ferramenta nativa de Java que utilizei para criar os gráficos e a animação do jogo:

[Bizuca V 1.0]


 ---//---

[Desenhos em Java]

Todo o desenho do projeto foi desenvolvido em cima da classe Graphics, que trabalha no redesenho do JPanel do nosso projeto:
import java.awt.Graphics;

Assim, o método principal de desenho sobre o JPanel é o paintComponent, que recebe um objeto do tipo Graphics. Chamando primeiro o método da superclasse:
super.paintComponent (g);

Assim, um programa básico de desenho, que traçaria, por exemplo, uma linha reta, teria a seguinte estrutura:

Lines.java
import javax.swing.JFrame;
 
public class Lines {
 
    public static void main(String[] args) {
       DrawLines panel = new DrawLines();
 
       JFrame frame= new JFrame("Meu primeiro desenho");
 
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.setSize( 250, 250 );
        frame.setVisible( true );
        frame.add( panel );
 
        }
}

DrawLines.java
import java.awt.Graphics;
import javax.swing.JPanel;
 
public class DrawLines extends JPanel{
 
    public void paintComponent( Graphics g ){
    super.paintComponent( g );
 
    g.drawLine( 0, 0, 250, 250 );
 
    }
}

Porém, o grande diferencial desta classe é possibilidade de manipular imagens de diversos formatos (.bmp, .png, etc) com grande facilidade, abrindo um grande leque de possibilidades para a criação de jogos. Para a criação de uma imagem, é preciso usar as seguintes classes:
import java.swing.ImageIcon;
import java.awt.Image;

Abaixo, um exemplo de aplicação com imagens. Note que o caminho da imagem deve ser especificado no código. O ideal é criar um pacote no projeto para colocar as imagens, que podem ser inseridas simplesmente arrastando-as para dentro do pacote, conforme a imagem abaixo:
Figura 1 - Projeto com Imagens

Assim, temos um exemplo de projeto com imagens:

Figura.java
package figura;
 
import javax.swing.JFrame;
 
public class Figura {
 
    public static void main(String[] args) {
        Panel panel = new Panel();
 
        JFrame frame = new JFrame("Meu primeiro desenho");
 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(450, 450);
        frame.setVisible(true);
        frame.add(panel);
 
    }
}
Panel.java
package figura;
 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
 
public class Panel extends JPanel {
    Image imagem;
    ImageIcon icon;
    String caminho = "src\\imagens\\pentagrama.png";
 
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
 
        icon = new ImageIcon(caminho);
        imagem = icon.getImage();
 
        g.drawImage(imagem, 10, 10, this);
        g.setColor(Color.red); g.drawLine(0, 0, 350, 350);
 
    }
}

O resultado terá a seguinte forma:
Figura 2 - Resultado da aplicação com uso de imagem.

E assim concluo a apresentação deste recurso interessante e poderoso. Deixo o link para um site bem didático que ensina a criação de um game clássico de naves e tiros:

E ainda mais alguns links:

Nenhum comentário:

Postar um comentário