-
Notifications
You must be signed in to change notification settings - Fork 0
/
RunMethod.java
94 lines (82 loc) · 2.02 KB
/
RunMethod.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import javax.swing.*;
import java.awt.*;
public class RunMethod extends JFrame {
private Menu menu;
private UserInterface ui;
private ScoreMenu scoreMenu;
private String response;
//Time:
private long startTime;
public static final long DELAY = 20;
private int timeCount = 0;
private int slowCount;
public RunMethod() {
super("Dance Dance Revolution:");
setBounds(500, 300, 600, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
}
//Time:
public void updateTime() {
timeCount = 0;
startTime = System.currentTimeMillis();
}
public void sleep(long delay) {
timeCount++;
long waitTime = (startTime + timeCount*delay) - System.currentTimeMillis();
if (waitTime > 0) {
try {
Thread.sleep(waitTime);
} catch (InterruptedException e) {}
} else {
slowCount++;
if (slowCount >= 20) {
System.out.println("Your system is too slow and will experience some lag.");
}
Thread.yield();
}
}
public void run() {
while(true) {
//Menu:
menu = new Menu();
setContentPane(menu);
((JComponent)getContentPane()).revalidate();
response = menu.update();
updateTime();
while(response == null) {
response = menu.update();
sleep(DELAY);
}
ui = new UserInterface(menu.getFile(), menu.getSong(), menu.getTempo());
addKeyListener(ui);
setContentPane(ui);
((JComponent)getContentPane()).revalidate();
//Time frame:
response = ui.update();
updateTime();
while (response == null) {
response = ui.update();
sleep(DELAY);
}
ui.setVisible(false);
scoreMenu = new ScoreMenu(ui.getScore(), ui.getMaxCombo());
//addKeyListener(scoreMenu);
setContentPane(scoreMenu);
((JComponent)getContentPane()).revalidate();
//Score menu:
updateTime();
response = scoreMenu.update();
while (response == null) {
response = scoreMenu.update();
sleep(DELAY);
}
scoreMenu.setVisible(false);
}
}
public static void main(String[] args) {
RunMethod run = new RunMethod();
run.run();
}
}