Advertisement
Guest User

Pre Bogiho lebo je opica

a guest
Feb 28th, 2020
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. package sample;
  2.  
  3. import javafx.event.ActionEvent;
  4. import javafx.fxml.FXML;
  5. import javafx.scene.control.Slider;
  6. import javafx.scene.control.TextArea;
  7. import javafx.scene.shape.Circle;
  8.  
  9. public class Controller {
  10. @FXML TextArea timer_area;
  11. @FXML public TextArea score_area;
  12. @FXML public Slider difficulty_slider;
  13. @FXML private Circle blueCircle;
  14. @FXML private Circle redCircle;
  15.  
  16. private boolean playing;
  17. private int blueScore;
  18. private int redScore;
  19. private static int ticks;
  20. private int difficulty;
  21.  
  22. @FXML
  23. public void new_game(ActionEvent event) {
  24. if(!playing) {
  25. playing = true;
  26. Thread timer = new Thread(() -> {
  27. try {
  28. while (playing) {
  29. Thread.sleep(50);
  30. ticks++;
  31. score_area.setText(blueScore +":" + redScore);
  32. timer_area.setText(convertToStringTime((5*60) - (ticks*50/1000)));
  33. if(playing) {
  34. showHideBlueCircle();
  35. showHideRedCircle();
  36. }
  37. if(ticks >= 6000) playing = false;
  38. }
  39. } catch (InterruptedException e) {
  40. e.printStackTrace();
  41. }
  42. });
  43. timer.start();
  44. }
  45. blueScore = 0;
  46. redScore = 0;
  47. ticks = 0;
  48. difficulty = (int) difficulty_slider.getValue();
  49. setupGame();
  50. }
  51.  
  52. private void showHideBlueCircle() {
  53. int perV = difficulty;
  54. int perH = difficulty * 2;
  55. if(ticks % (perH + perV) == perV) {
  56. double ranX = Math.random() * 331 - blueCircle.getRadius();
  57. double ranY = Math.random() * 600 - blueCircle.getRadius();
  58. blueCircle.setLayoutX(ranX);
  59. blueCircle.setLayoutY(ranY);
  60. blueCircle.setVisible(true);
  61. }
  62. if(ticks % (perH + perV) == 0) {
  63. blueCircle.setVisible(false);
  64. }
  65. }
  66.  
  67. private void showHideRedCircle() {
  68. int perV = difficulty;
  69. int perH = difficulty * 2;
  70. if(ticks % (perH + perV) == perV) {
  71. double ranY = Math.random() * (331 - redCircle.getRadius() * 2) + ;
  72. double ranX = Math.random() * (600 - redCircle.getRadius() * 2);
  73. redCircle.setLayoutX(ranX);
  74. redCircle.setLayoutY(ranY);
  75. redCircle.setVisible(true);
  76. }
  77. if(ticks % (perH + perV) == 0) {
  78. redCircle.setVisible(false);
  79. }
  80. }
  81.  
  82. private void setupGame() {
  83. int r = (int) difficulty_slider.getValue() * 3;
  84. blueCircle.setRadius(r);
  85. redCircle.setRadius(r);
  86. }
  87.  
  88. private String convertToStringTime(int timeInSeconds){
  89. int seconds = timeInSeconds % 60;
  90. int minutes = (timeInSeconds - seconds) /60;
  91. return String.format("%02d:%02d", minutes, seconds);
  92. }
  93.  
  94. @FXML
  95. private void blueCircleMouseEntered() {
  96. if(playing && blueCircle.isVisible()) {
  97. blueCircle.setVisible(false);
  98. blueScore++;
  99. }
  100. }
  101.  
  102. @FXML
  103. private void redCircleMouseEntered() {
  104. if(playing && redCircle.isVisible()) {
  105. redCircle.setVisible(false);
  106. redScore++;
  107. }
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement