Skip to content
Snippets Groups Projects
GameController.java 1.53 KiB
package lab;

import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.geometry.Point2D;
import javafx.scene.canvas.Canvas;
import javafx.scene.control.Slider;

public class GameController {

	@FXML
	private Slider boatPosition;

	private DrawingThread timer;

    @FXML
    private Canvas canvas;

    @FXML
    private Slider speed;

    @FXML
    void changePosition(ActionEvent event) {
		timer.getScene().getRock().changePosition();

    }

    @FXML
    void initialize() {
        assert boatPosition != null : "fx:id=\"angle\" was not injected: check your FXML file 'gameWindow.fxml'.";
        assert canvas != null : "fx:id=\"canvas\" was not injected: check your FXML file 'gameWindow.fxml'.";
        assert speed != null : "fx:id=\"speed\" was not injected: check your FXML file 'gameWindow.fxml'.";
		timer = new DrawingThread(canvas);
		timer.start();
		boatPosition.valueProperty().addListener(new ChangeListener<Number>() {
			@Override
			public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
				timer.getScene().getBoat().setPosInPercentage(newValue.doubleValue());
			}
		});
		speed.valueProperty().addListener(new ChangeListener<Number>() {
			@Override
			public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
				timer.getScene().getBackground().setSpeed(newValue.doubleValue());
			}
		});

    }

	public void stop() {
		timer.stop();
	}

    
}