-
koz01 authoreddfcc0b20
GameController.java 1.01 KiB
package lab;
import javafx.animation.AnimationTimer;
import javafx.fxml.FXML;
import javafx.scene.canvas.Canvas;
import javafx.scene.control.Button;
import javafx.scene.control.Slider;
public class GameController {
private World world;
@FXML
private Canvas canvas;
@FXML
private Slider angleSlider;
@FXML
private Button fireButton;
@FXML
private Slider forceSlider;
private AnimationTimer animationTimer;
public void startGame() {
this.world = new World(canvas.getWidth(), canvas.getHeight());
//Draw scene on a separate thread to avoid blocking UI.
animationTimer = new DrawingThread(canvas, world);
angleSlider.valueProperty().addListener( (obj, oldValue, newValue) -> world.setAngleOfCannon(newValue.doubleValue()));
forceSlider.valueProperty().addListener( (obj, oldValue, newValue) -> world.setForce(newValue.doubleValue()));
animationTimer.start();
}
@FXML
private void firePressed() {
world.fireBullet();
}
public void stopGame() {
animationTimer.stop();
}
}