Skip to content

Commit bcc8ee1

Browse files
committed
Highscore is now also saved on exit and restart, not just game over.
1 parent 2fd300c commit bcc8ee1

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

src/res/script.js

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var Font = java.awt.Font;
77

88
var KeyAdapter = java.awt.event.KeyAdapter;
99
var KeyEvent = java.awt.event.KeyEvent;
10+
var WindowAdapter = java.awt.event.WindowAdapter;
1011

1112
var BufferedImage = java.awt.image.BufferedImage;
1213

@@ -27,9 +28,9 @@ var JFrame = javax.swing.JFrame;
2728
var JPanel = javax.swing.JPanel;
2829

2930
// implemented on use
30-
var MyPanel = Java.extend(JPanel, Runnable);
31-
3231
var MyKeyListener = Java.extend(KeyAdapter);
32+
var MyPanel = Java.extend(JPanel, Runnable);
33+
var MyWindowListener = Java.extend(WindowAdapter);
3334

3435
// class definitions end here
3536

@@ -94,6 +95,15 @@ if (!highscore_file.exists()) {
9495
reader.close();
9596
}
9697

98+
function checkHighscore() {
99+
if (old_highscore == highscore)
100+
return;
101+
var writer = new FileWriter(highscore_file);
102+
writer.write(Integer.toString(highscore));
103+
writer.close();
104+
old_highscore = highscore;
105+
}
106+
97107
function init() {
98108
y = 0.5;
99109

@@ -118,11 +128,8 @@ init();
118128

119129
// delta - elapsed milliseconds since last update call
120130
function update(delta) {
121-
if (gameover && old_highscore != highscore) {
122-
var writer = new FileWriter(highscore_file);
123-
writer.write(Integer.toString(highscore));
124-
writer.close();
125-
old_highscore = highscore;
131+
if (gameover) {
132+
checkHighscore();
126133
}
127134

128135
y += speed.y;
@@ -247,21 +254,34 @@ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
247254
frame.setTitle("Hello World!");
248255

249256
// class is implemented here bcs i did it with the panel class, too
250-
var listener = new MyKeyListener({
257+
var keyListener = new MyKeyListener({
251258
keyPressed: function(e) {
252259
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
260+
checkHighscore();
253261
System.exit(0);
254262
} else if (e.getKeyCode() == KeyEvent.VK_SPACE) {
255263
if (!gameover) {
256264
speed.y = -1 / 1000;
257265
}
258266
} else if (e.getKeyCode() == KeyEvent.VK_R) {
267+
checkHighscore();
259268
init();
260269
}
261270
}
262271
});
263272

264-
frame.addKeyListener(listener);
273+
frame.addKeyListener(keyListener);
274+
275+
var windowListener = new MyWindowListener({
276+
windowClosed: function(e) {
277+
checkHighscore();
278+
},
279+
windowClosing: function(e) {
280+
checkHighscore();
281+
}
282+
});
283+
284+
frame.addWindowListener(windowListener);
265285

266286
// class is implemented here bcs idk how else to do Java.super()
267287
var panel = new MyPanel({

0 commit comments

Comments
 (0)