Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sample;
- import javafx.event.ActionEvent;
- import javafx.fxml.FXML;
- import javafx.scene.control.Slider;
- import javafx.scene.control.TextArea;
- import javafx.scene.shape.Circle;
- public class Controller {
- @FXML TextArea timer_area;
- @FXML public TextArea score_area;
- @FXML public Slider difficulty_slider;
- @FXML private Circle blueCircle;
- @FXML private Circle redCircle;
- private boolean playing;
- private int blueScore;
- private int redScore;
- private static int ticks;
- private int difficulty;
- @FXML
- public void new_game(ActionEvent event) {
- if(!playing) {
- playing = true;
- Thread timer = new Thread(() -> {
- try {
- while (playing) {
- Thread.sleep(50);
- ticks++;
- score_area.setText(blueScore +":" + redScore);
- timer_area.setText(convertToStringTime((5*60) - (ticks*50/1000)));
- if(playing) {
- showHideBlueCircle();
- showHideRedCircle();
- }
- if(ticks >= 6000) playing = false;
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- });
- timer.start();
- }
- blueScore = 0;
- redScore = 0;
- ticks = 0;
- difficulty = (int) difficulty_slider.getValue();
- setupGame();
- }
- private void showHideBlueCircle() {
- int perV = difficulty;
- int perH = difficulty * 2;
- if(ticks % (perH + perV) == perV) {
- double ranX = Math.random() * 331 - blueCircle.getRadius();
- double ranY = Math.random() * 600 - blueCircle.getRadius();
- blueCircle.setLayoutX(ranX);
- blueCircle.setLayoutY(ranY);
- blueCircle.setVisible(true);
- }
- if(ticks % (perH + perV) == 0) {
- blueCircle.setVisible(false);
- }
- }
- private void showHideRedCircle() {
- int perV = difficulty;
- int perH = difficulty * 2;
- if(ticks % (perH + perV) == perV) {
- double ranY = Math.random() * (331 - redCircle.getRadius() * 2) + ;
- double ranX = Math.random() * (600 - redCircle.getRadius() * 2);
- redCircle.setLayoutX(ranX);
- redCircle.setLayoutY(ranY);
- redCircle.setVisible(true);
- }
- if(ticks % (perH + perV) == 0) {
- redCircle.setVisible(false);
- }
- }
- private void setupGame() {
- int r = (int) difficulty_slider.getValue() * 3;
- blueCircle.setRadius(r);
- redCircle.setRadius(r);
- }
- private String convertToStringTime(int timeInSeconds){
- int seconds = timeInSeconds % 60;
- int minutes = (timeInSeconds - seconds) /60;
- return String.format("%02d:%02d", minutes, seconds);
- }
- @FXML
- private void blueCircleMouseEntered() {
- if(playing && blueCircle.isVisible()) {
- blueCircle.setVisible(false);
- blueScore++;
- }
- }
- @FXML
- private void redCircleMouseEntered() {
- if(playing && redCircle.isVisible()) {
- redCircle.setVisible(false);
- redScore++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement