Skip to content
Snippets Groups Projects
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();
	}

	
}