package game.View; import game.Engine.GameView; import game.Game; import game.Object.GameMap; import javafx.scene.control.Label; import javafx.scene.effect.GaussianBlur; import javafx.scene.effect.Glow; import javafx.scene.effect.Reflection; import javafx.scene.image.ImageView; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; @game.Engine.Annotation.GameView public class OverView extends GameView { public OverView() { root = new Pane(); Game.getInstance().resetMedia(); GameMap map = Game.getInstance().getMapManager().getCurrentMap(); ImageView mapIv = new ImageView(map.getMapImage()); mapIv.setFitWidth(Game.getInstance().getWidth()); mapIv.setFitHeight(Game.getInstance().getHeight()); Label nameLbl = new Label("Game Over!"); nameLbl.setTextFill(Color.WHITESMOKE); nameLbl.setFont(Game.getInstance().getResouceManager().getFont("Starcraft", 80)); nameLbl.setLayoutX(50); nameLbl.setLayoutY(50); Label scoreLbl = new Label(); scoreLbl.setTextFill(Color.WHITESMOKE); scoreLbl.setFont(Game.getInstance().getResouceManager().getFont("Starcraft", 60)); scoreLbl.setLayoutX(50); scoreLbl.setLayoutY(map.getHeight() - scoreLbl.getHeight() - 140); if (Game.getInstance().getScore() > Game.getInstance().getDataManager().getHighestScore()) { // 刷新高分记录! scoreLbl.setText("New Record: " + Game.getInstance().getScore()); Game.getInstance().getDataManager().setHighestScore(Game.getInstance().getScore()); } else scoreLbl.setText("Score: " + Game.getInstance().getScore()); Reflection reflection = new Reflection(); reflection.setFraction(1.0); nameLbl.setEffect(reflection); ImageView homeBtn = new ImageView(Game.getInstance().getResouceManager().getControl("btn_home")); homeBtn.setFitWidth(165 * 1.5); homeBtn.setFitHeight(65 * 1.5); homeBtn.setLayoutX(map.getWidth() - homeBtn.getFitWidth() - 20); homeBtn.setLayoutY(map.getHeight() - homeBtn.getFitHeight() - 60); homeBtn.setEffect(reflection); homeBtn.setOnMouseEntered(event -> { homeBtn.setEffect(new Glow(0.8)); Game.getInstance().getButtonOverMusic().play(); }); homeBtn.setOnMouseExited(event -> { homeBtn.setEffect(reflection); Game.getInstance().getButtonOverMusic().stop(); }); homeBtn.setOnMousePressed(event -> { homeBtn.setEffect(new GaussianBlur()); Game.getInstance().getButtonClickMusic().play(); }); homeBtn.setOnMouseReleased(event -> { homeBtn.setEffect(new Glow(0.8)); Game.getInstance().home(); }); root.getChildren().add(mapIv); root.getChildren().add(nameLbl); root.getChildren().add(scoreLbl); root.getChildren().add(homeBtn); makeFadeTransition(homeBtn, 2000, 1, 0.7); makeFadeTransition(mapIv, 3000, 1, 0.8); makeScaleTransition(mapIv, 10000, 0.25, 0.25); } @Override public void update() { } @Override public void start() { } @Override public void stop() { } }