@Override public void restart() { if (context .getLeaderboard() .isHighScore(new Player("", context.getHUDManager().getScore()), 10)) { textBox.setEnabled(true); textBox.setText("Enter your name"); } else textBox.setEnabled(false); entryAdded = false; context.getSoundManager().playBackgroundSound(backgroundMusic); }
public GameOverScreen(Component comp, Graphics2D g2d) { this.component = comp; this.g2d = g2d; background = new ImageEntity(comp); background.load("/resources/gameOverScreen.png"); highScoreNotification = new ImageEntity(comp, g2d); highScoreNotification.load("/resources/newHighscore.png"); highScoreNotification.setPosition(new Point2D(519, 559)); backButton = new Button(comp); backButton.setGraphics(g2d); backButton.load("/resources/backButton.png"); textBox = new TextField(comp, g2d, Color.BLACK, new Font("arial", Font.PLAIN, 30)); textBox.load("/resources/textbox.png"); textBox.setMaxSize(20); textBox.setPosition(new Point2D(451, 600)); textBox.setAction("player_text"); textBox.addObserver(this); entryAddedNotification = new ImageEntity(comp, g2d); entryAddedNotification.load("/resources/leaderboardSuccessNotification.png"); entryAddedNotification.setPosition(new Point2D(textBox.getX(), textBox.getY())); backButton.setPosition(new Point2D(384, 591)); backButton.setAction("back"); backButton.addObserver(this); entryAdded = false; backgroundMusic = new SoundSample("/resources/gameOverSong.wav"); }
@Override public void update(Observable o, GameEvent e) { if (!(e instanceof ActionEvent)) return; ActionEvent ev = (ActionEvent) e; switch (ev.getMessage()) { case "back": if (textBox.isEnabled() && !entryAdded) return; else context.goNext(Screens.START, GameManager.RESUME); break; case "player_text": String text = textBox.getText(); context.getLeaderboard().insert(new Player(text, context.getHUDManager().getScore())); context.getLeaderboard().save(GameSettings.LEADERBOARD_PATH); textBox.setEnabled(false); entryAdded = true; break; default: break; } }
@Override public void draw() { g2d.drawImage(background.getImage(), 0, 0, 1280 - 1, 720 - 1, component); backButton.draw(); Font prevFont = g2d.getFont(); g2d.setColor(Color.GREEN); g2d.setFont(new Font("arial", Font.PLAIN, 20)); g2d.drawString( "Score: " + context.getHUDManager().getScore(), (int) highScoreNotification.getX() + 5, (int) highScoreNotification.getY() - 10); g2d.setFont(prevFont); if (context .getLeaderboard() .isHighScore(new Player("", context.getHUDManager().getScore()), 10)) { highScoreNotification.draw(); textBox.draw(); } if (entryAdded) entryAddedNotification.draw(); }
@Override public void mouseClicked(MouseEvent e) { backButton.mouseClicked(e); textBox.mouseClicked(e); }
@Override public void keyTyped(KeyEvent e) { textBox.keyTyped(e); }
@Override public void keyPressed(KeyEvent e) { textBox.keyPressed(e); }