Jogo Figuras Geometricas

1 resposta
ThiagoA

[b]E ai pessoal,

tudo beleza ?!! [/b]

Estou desenvolvendo um projeto proposto pela instituição de ensino onde estudo “FEIT/UEMG”,

que é um jogo de Figuras Geometricas voltado para o aprendizado de crianças

entre 4 e 8 anos de idade, no entanto estou com dificuldade para fazer a programação

deste jogo, pois faz pouco tempo que comeceia meus estudos em JAVA,

e ainda estou longe de concluir este projeto.

Por exemplo, no jogo é mostrado um “quadro” onde as

figuras geometricas vão aparecendo de 5 em 5 segundos e o jogador

vai repondendo qual é a figura que está aparecendo no “quadro” (clicando em um botão ou precionando um tecla)

por isso precisso de um “espaço” na janela principal do jogo, para pintar e repintar estas figuras.

Desde de já agradeço pela ajuda !

OBRIGADO !!!

package jog;  
  
import javax.swing.*;     
import java.awt.*;     
import java.awt.image.*;     
    
public class Janela {     
    public static void main(String[] args) {     
        JFrame frm = new JFrame("Teste Imagem");     
        JPanel pan = new JPanel();     
        JLabel lbl = new JLabel( Figuras.Circulo() );     
        pan.add( lbl );     
        frm.getContentPane().add( pan );     
        frm.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );     
        frm.pack();     
        frm.show();     
    }     
         
}
package jog;     
  
import javax.swing.*;       
import java.awt.*;       
import java.awt.image.*;       
  
public class Figuras {       
  
    static BufferedImage Quadro = new BufferedImage( 350, 350, BufferedImage.TRANSLUCENT );  
  
    // CIRCULO //  
    static ImageIcon Circulo() {       
        Graphics2D g = Quadro.createGraphics();       
        g.setColor( Color.RED);       
        g.fillOval( 100, 100, 50, 50 );       
  
        return new ImageIcon(Quadro);       
    }     
  
    // QUADRADO //  
    public static ImageIcon Quadrado() {       
        Graphics2D g = Quadro.createGraphics();       
        g.setColor( Color.YELLOW );       
        g.fillRect( 0, 0, 50, 50 );       
  
        return new ImageIcon(Quadro);       
    }       
      
}

OBRIGADO!!

1 Resposta

ViniGodoy

Antes de usar o Graphics, você deve estudar um pouco mais do Java2D.

Existem artigos para isso no Ponto V:
http://pontov.com.br/site/java/47-javageral
http://pontov.com.br/site/java/48-java2d

A forma que você está usando está completamente errada, um indicativo de que você tentou programar por tentativa e erro, sem entender o que está fazendo exatamente. Isso é uma péssima prática de programação, e leva a erros difíceis de depurar depois.

Uma das formas, seria estender um JComponent, e sobrescrever seu método paintComponent. Com isso, você pode fazer li o desenho das figuras geométricas, usando o próprio Java 2D. Desenhar um polígono fechado com N lados é uma tarefa bastante trivial. Basta usar para isso a fórmula cos(x), sen(x) para traçar os pontos, onde x é 2PI dividos pelo número de lados do polígono (no fundo, estamos dividindo uma circunferência no número de lados desejado).

Outra possibilidade é carregar num JLabel um BufferedImage previamente feito em outra ferramenta, como o Corel ou o próprio paint. A vantagem é que um artista poderia facilmente trabalhar nessas figuras, e faze-las com mais apelo a esse tipo de público (com rosto, expressões amigáveis, etc). Outra vantagem é que com isso você trabalha puramente no Swing, sem precisar aprender Java 2D, ou usar o Graphics diretamente.

Criado 8 de agosto de 2011
Ultima resposta 8 de ago. de 2011
Respostas 1
Participantes 2