feat: display score & game over, code cleanup
This commit is contained in:
@@ -1,17 +1,20 @@
|
||||
package eu.midnightdust.yaytris;
|
||||
|
||||
import eu.midnightdust.yaytris.game.Space;
|
||||
import eu.midnightdust.yaytris.ui.ScoreMenu;
|
||||
import eu.midnightdust.yaytris.ui.TetrisUI;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Random;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
public class Tetris {
|
||||
public static final Random random = new Random();
|
||||
public static Space space;
|
||||
public static Timer timer;
|
||||
public static TetrisUI ui;
|
||||
private static Space space;
|
||||
private static Timer timer;
|
||||
private static TetrisUI ui;
|
||||
private static TimerTask gravityTask;
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
@@ -23,4 +26,35 @@ public class Tetris {
|
||||
space = new Space();
|
||||
ui = new TetrisUI();
|
||||
}
|
||||
|
||||
public static TetrisUI getUi() {
|
||||
return ui;
|
||||
}
|
||||
|
||||
public static Space getSpace() {
|
||||
return space;
|
||||
}
|
||||
|
||||
public static void resetSpace() {
|
||||
space = new Space();
|
||||
}
|
||||
|
||||
public static void startGame() {
|
||||
space.spawnTetromino();
|
||||
gravityTask = new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (space.getCurrentTetromino() != null) {
|
||||
space.getCurrentTetromino().fall(1);
|
||||
ui.getGamePanel().repaint();
|
||||
}
|
||||
}
|
||||
};
|
||||
timer.scheduleAtFixedRate(gravityTask, 1, Settings.difficulty.getTimerPeriod());
|
||||
}
|
||||
public static void stopGame() {
|
||||
gravityTask.cancel();
|
||||
if (ui.getMenuPanel() instanceof ScoreMenu) ((ScoreMenu) Tetris.ui.getMenuPanel()).gameOver();
|
||||
ui.transferFocus();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user