/
alex_ep0411
/
java_lab2
Обзор
Документация
Войти
/
alex_ep0411
/
java_lab2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/controller/GameController.java
75 строк
3 KB
александр
лабораторная работа 2
08 июн 2026, 13:18
08 июн 2026, 13:18
6f466e8
Код
Авторство
О чём код?
package controller; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Label; import javafx.scene.layout.Pane; import javafx.scene.shape.Circle; import javafx.scene.paint.Color; import javafx.beans.binding.Bindings; import java.net.URL; import java.util.ResourceBundle; import java.util.Random; import model.GameModel; public class GameController implements Initializable { @FXML private Pane gamePane; @FXML private Circle ball; @FXML private Label scoreLabel; @FXML private Label statusLabel; @FXML private Label newGameLabel; public GameModel gameModel; private final Random random = new Random(); // final @Override public void initialize(URL url, ResourceBundle rb) { gameModel = new GameModel(); gameModel.setSize(gamePane.getWidth(), gamePane.getHeight()); ball.setFill(Color.RED); ball.setStroke(Color.web("#ecf0f1")); ball.setStrokeWidth(2); ball.centerXProperty().bind(Bindings.createDoubleBinding( () -> gameModel.ballPosition.get().getX(), gameModel.ballPosition)); ball.centerYProperty().bind(Bindings.createDoubleBinding( () -> gameModel.ballPosition.get().getY(), gameModel.ballPosition)); scoreLabel.textProperty().bind(Bindings.concat("Счет: ", gameModel.scoreProperty)); statusLabel.textProperty().bind(Bindings.createStringBinding( () -> gameModel.gameActiveProperty.get() ? "Статус: Активна" : "Статус: Пауза", gameModel.gameActiveProperty)); // Убрал лишний параметр e ball.setOnMouseClicked(event -> { if (event.getClickCount() == 2) { gameModel.gameActiveProperty.set(!gameModel.gameActiveProperty.get()); } else { gameModel.hit(); changeBallColor(); } }); gamePane.setOnMouseMoved(event -> gameModel.runFromCursor(event.getX(), event.getY())); newGameLabel.setOnMouseClicked(e -> { gameModel.reset(); ball.setFill(Color.RED); }); // Заменил o, old на _ gamePane.widthProperty().addListener((_, _, newVal) -> gameModel.setSize(newVal.doubleValue(), gamePane.getHeight())); gamePane.heightProperty().addListener((_, _, newVal) -> gameModel.setSize(gamePane.getWidth(), newVal.doubleValue())); } private void changeBallColor() { int r = random.nextInt(256); int g = random.nextInt(256); int b = random.nextInt(256); ball.setFill(Color.rgb(r, g, b)); } }