我试图用java制作游戏。我的问题是我没有初始化方法或者当我尝试创建一个时,我的repaint()方法替换了我的初始化方法。我需要初始化来生成我的地图。因为我的地图是一个多边形列表,我想在点击时设置背景。所以,如果它每次都在repaint()调用的循环中生成,我就无法做到。
我的代码:
运行方法:
@Override
public void run()
{
while (isRunning)
{
backPanel.repaint();
}
}
我的backpanel课程
int jogadas = 1;
绘画方法:
@Override
public void paint(Graphics canvasOriginal)
{
super.paint(canvasOriginal);
canvas = (Graphics2D) canvasOriginal;
canvas.setColor(Color.BLACK);
mapa = new Mapa(canvas);
mapa.DrawMapa(100, 50, 5);
getJogada();
}
int getVez() {
if(jogadas % 2 == 0) {
return 1;
}
return 0;
}
void getJogada() {
Hexagono hex = mapa.selecionarHex(x, y);
if(!hex.getPrenchido()) {
if(jogador1.getNumero() == getVez()) {
hex.Preencher(jogador1.getColor());
} else {
hex.Preencher(jogador2.getColor());
}
jogadas++;
}
}
Obs:mapa.selectHex选择列表中的十六进制。 hex.preencher()填充十六进制多边形。
结果: