Skip to content
Open

Main #88

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .gitignore

This file was deleted.

6 changes: 0 additions & 6 deletions robots/.classpath

This file was deleted.

2 changes: 0 additions & 2 deletions robots/.gitignore

This file was deleted.

17 changes: 0 additions & 17 deletions robots/.project

This file was deleted.

11 changes: 11 additions & 0 deletions robots/src/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import controller.GameController;
import javax.swing.*;

public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
GameController gameController = new GameController();
gameController.start();
});
}
}
73 changes: 73 additions & 0 deletions robots/src/controller/GameController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package controller;

import model.Model;
import view.GameVisualizer;

import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class GameController {
private final Model model;
private final GameVisualizer gameVisualizer;
private Timer timer;

public GameController() {
model = new Model();
gameVisualizer = new GameVisualizer(model);

timer = new Timer(10, e -> {
model.update(10);
gameVisualizer.repaint();

if (model.getWinPoint().checkWin(model.getRobot())) {
endGame("Победа! Вы достигли точки победы!");
} else if (model.getLosePoint().checkLose(model.getRobot())) {
endGame("Поражение! Вы достигли точки поражения!");
}
});
timer.start();

gameVisualizer.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
model.sendMouseClickEvent(e.getX(), e.getY());
}
});
}

private void endGame(String message) {
timer.stop();

int option = JOptionPane.showOptionDialog(
gameVisualizer,
message,
"Игра завершена",
JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
new String[]{"Перезапустить", "Выход"},
"Перезапустить"
);

if (option == JOptionPane.YES_OPTION) {
restartGame();
} else {
System.exit(0);
}
}

private void restartGame() {
model.getRobot().setPosition(100, 100);
model.getRobot().setTargetPosition(150, 100);
timer.start();
}

public void start() {
JFrame frame = new JFrame("Game Window");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(gameVisualizer);
frame.setSize(800, 600);
frame.setVisible(true);
}
}
210 changes: 0 additions & 210 deletions robots/src/gui/GameVisualizer.java

This file was deleted.

20 changes: 0 additions & 20 deletions robots/src/gui/GameWindow.java

This file was deleted.

Loading