Всем привет. Делаю игру по типу танчики и возникла проблема. Вот вырисовывается "цель" (крестик), но при изменении диалогового окна она не меняет своего положения относительно карты. Как можно ее зафиксировать на этой белой карте? Буду Вам благодарна, если Вы мне поможете.
public static void makeWindow(){
panel = new Game();
//TerrainFileHandler tfh = panel.new TerrainFileHandler();
frame.add(panel);
frame.setTitle("Prototyp 1 / A16B0087P");
frame.setSize(640, 480);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
@Override
public void paint(Graphics g){
paint2D((Graphics2D)g);
kresleniStrelce((Graphics2D)g);
kresleniCile((Graphics2D)g);
}
/**
* Kresleni do panelu
* @param g2 graficky kontext
*/
//тут вырисовывается эта белая карта и черная обводка
public void paint2D(Graphics2D g2) {
int columns = this.getWidth();
int rows = columns/2;
if (rows > this.getHeight()){
rows = this.getHeight();
columns = 2*rows;
}
//karta (bely pryamoug.)
g2.setColor(Color.WHITE);
g2.fill(new Rectangle2D.Float(10, 10, columns-20, rows-12));
//obvodka
g2.setColor(Color.BLACK);
g2.setStroke(new BasicStroke(1));
g2.draw(new Rectangle2D.Float(10, 10, columns-20, rows-12));
}
//в этих двух методах находятся стрелок и цель (крестики)
public static void kresleniStrelce(Graphics2D g2) {
g2.translate(shooter.x+50, 50+shooter.y);
g2.setColor(shooter.color);
g2.draw(new Line2D.Double(0, -5, 0, 5));
g2.draw(new Line2D.Double(-5, 0, 5, 0));
}
public static void kresleniCile(Graphics2D g2) {
g2.translate(target.x+50, 100+target.y);
g2.setColor(target.color);
g2.draw(new Line2D.Double(0, -5, 0, 5));
g2.draw(new Line2D.Double(-5, 0, 5, 0));
}