Java源码实现《植物大战僵尸》

前言

学Java的朋友们,福利来了,今天小编给大家带来了一款 植物大战僵尸源码,看图:

视频演示

环境JDK1.8

类继承UML图

源码实现

我们先从main函数看起,继承了javafx.application.Application。JavaFx是Java图形化界面技术AWT、Swing技术的新替代品。

通过main()执行Application的launch(String str)方法,当然launch(String str)方法不传入任何值也是可以执行的.launch(String str)方法会默认执行本类下的init()、start()、stop()方法。执行下面的main()方法后显示顺序为:

这是初始化方法➡这是start()方法➡这是stop()方法➡这是main()方法。

复制代码
public class Main extends Application {
    // 完整源码: gitee店康姆/hadluo/java_code.git
    public static MediaPlayer mediaPlayer;
    private static Database currentd;

    @Override
    public void start(Stage primaryStage) throws Exception{
        // 程序启动执行
        deserialize();
        addMusic();
        Parent mainPage=FXMLLoader.load(getClass().getResource("MainPage.fxml"));
        Scene scene = new Scene(mainPage,1024,600);
        primaryStage.setTitle("Plants VS Zombies");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public void addMusic() {
        Media sound = new Media(getClass().getResource("/assets/background.wav").toString());
        mediaPlayer = new MediaPlayer(sound);
        mediaPlayer.setAutoPlay(true);
        mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE);
        mediaPlayer.setStartTime(Duration.seconds(0));
        mediaPlayer.setStopTime(Duration.seconds(50));
        mediaPlayer.play();
    }

    public static Database getDatabase(){
        return currentd;
    }
    public static void serialize() throws IOException {
        ObjectOutputStream out=null;
        try {
            out = new ObjectOutputStream (new FileOutputStream("database.txt"));
            out.writeObject(currentd);
        }
        finally {
            out.close();
            //System.out.println("Saved!");
            System.exit(0);
        }
    }
    public static void deserialize() throws ClassNotFoundException, FileNotFoundException, IOException{
        ObjectInputStream in = null;
        try {
            in=new ObjectInputStream (new FileInputStream("database.txt"));
            currentd=(Database) in.readObject();
            in.close();
        }
        catch (FileNotFoundException e){
            currentd=new Database();
        }
        catch (NullPointerException e) {
            currentd=new Database();
            //System.out.println("This user does not exist in the database");
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}
// 完整源码: gitee店康姆/hadluo/java_code.git

结尾语

我是分享好物+教程+源码的老罗,欢迎关注!

相关推荐
virus59454 小时前
悟空CRM mybatis-3.5.3-mapper.dtd错误解决方案
java·开发语言·mybatis
初次见面我叫泰隆4 小时前
Qt——3、常用控件
开发语言·qt·客户端
没差c5 小时前
springboot集成flyway
java·spring boot·后端
无小道5 小时前
Qt——QWidget
开发语言·qt
时艰.5 小时前
Java 并发编程之 CAS 与 Atomic 原子操作类
java·开发语言
梵刹古音6 小时前
【C语言】 函数基础与定义
c语言·开发语言·算法
编程彩机6 小时前
互联网大厂Java面试:从Java SE到大数据场景的技术深度解析
java·大数据·spring boot·面试·spark·java se·互联网大厂
笨蛋不要掉眼泪6 小时前
Spring Boot集成LangChain4j:与大模型对话的极速入门
java·人工智能·后端·spring·langchain
梵刹古音6 小时前
【C语言】 结构化编程与选择结构
c语言·开发语言·嵌入式
Yvonne爱编码6 小时前
JAVA数据结构 DAY3-List接口
java·开发语言·windows·python