Guj, estou tentando desenhar uma matriz de quadrados na minha tela, mas não vai =/
O quê estou tentando fazer é um jogo estilo Tower Defense.
Eu desenho na tela o cenário e quero mostrar os quadrados para serem as áreas na qual os monstros irão passar e as torres serão construídas.
Mas desenha apenas o primeiro quadrado </3
Segue o código:
package towerDefense;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
/**
*
* @author Paulo Lopes
* @since 1.0
*/
public final class Fase1 extends JPanel
{
private Image grama;
private int largura, altura;
private BlocosFases[][] blocos;
/**
*
* @param largura largura da tela.
* @param altura altura da tela.
*/
public Fase1(int largura, int altura)
{
ImageIcon icone = new ImageIcon("imagens/fase1.jpg");
icone.setImage(icone.getImage().getScaledInstance(largura, altura, Image.SCALE_SMOOTH));
grama = icone.getImage();
blocos = new BlocosFases[10][15];
for(int cont =0; cont < blocos.length; cont ++)
{
for(int cont2 = 0; cont2 < blocos[0].length; cont2 ++)
{
blocos[cont][cont2] = new BlocosFases(largura, altura);
}
}
}
@Override
public void paintComponent(Graphics graficos)
{
graficos.drawImage(grama, largura, altura, null);
for(int cont =0; cont < blocos.length; cont ++)
{
for(int cont2 = 0; cont2 < blocos.length; cont2 ++)
{
blocos[cont][cont2].pintarBlocos(graficos);
}
}
}
}
A Classe que cria os quadrados é essa (coisa simples):
package towerDefense;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
/**
*
* @author Paulo Lopes
* @since 1.0
*/
public class BlocosFases extends Rectangle
{
private final int larguraRetangulo, alturaRetangulo;
/**
*
* @param largura Largura da tela.
* @param altura Altura da tela.
*/
public BlocosFases(int largura, int altura)
{
larguraRetangulo = largura /15; //15 blocos em largura.
alturaRetangulo = altura / 10; // 10 blocos em altura.
}
/**
*
* @param g Classe abstrata para desenhos em tela.
*/
public void pintarBlocos(Graphics g)
{
Graphics2D grafico = (Graphics2D) g;
grafico.drawRect(x, y, larguraRetangulo, alturaRetangulo);
}
}
Alguma ideia?
Agradeço de antemão.
Paulo.