首页 > 编程语言 >Java源码:植物大战僵尸 + 大学生练手项目

Java源码:植物大战僵尸 + 大学生练手项目

时间:2025-01-18 20:22:14浏览次数:1  
标签:练手 Java mediaPlayer 源码 static new public out

前言

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

图片

视频演示

https://githubs.xyz/show/175.mp4

环境

JDK1.8

 

代码采用原生java类库编写,完整源码获取地址:

gitee.com/hadluo/java_game01.git

 

类继承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 {
   
    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);
    }
}

 

结尾语

源码仅供学习。

标签:练手,Java,mediaPlayer,源码,static,new,public,out
From: https://www.cnblogs.com/hadluo/p/18678793

相关文章

  • JAVA游戏源码:仙剑|大学生练手项目
    学习java朋友们,福利来了,今天小编给大家带来了一款仙剑源码。注意:此源码仅供学习使用!!并不是实现完整的仙剑游戏,仅供java开发者学习的代码!!!演示视频地址https://githubs.xyz/show/211.mp4代码采用原生java类库编写,利用javaswing作为界面框架,完整源码获取地址:gitee.com/hadl......
  • CF 265B.Roadside Trees (Simplified Edition)(Java实现)
    题目分析    松鼠的起点在第一棵树的0位置,它的行动轨迹为到达顶端,吃坚果,到另一棵树的同位置,到达顶端,吃坚果。思路分析    根据题目分析,我们需要有一个不断更新的起始位置,单次循环内的时间=到达顶端的距离+吃坚果+跳跃=顶端-起始+1+1代码        ......
  • CF 284B.Cows and Poker Game(Java实现)
    题目分析    奶牛也打扑克。一共有三种情况,简称AFI,并且只有自己为AI状态其余全部人为AF状态才可以亮手牌。思路分析    根据题目分析,针对三个不同状态分析情况:当且仅当有一个I时,唯有这个奶牛可以亮牌,如果I的个数大于1,一个也不能亮牌;当没有I时,判断A的个数,有......
  • Java游戏源码:天天酷跑+大学生学习源码
    学习java朋友们,福利来了,今天小编给大家带来了一款天天酷跑源码。注意:此源码仅供学习使用!!视频演示https://githubs.xyz/show/209.mp4源码搭建和讲解代码采用原生java类库编写,利用javaswing作为界面框架,完整源码获取地址:gitee.com/hadluo/java_game01.git启动main入口:i......
  • 有一个包含开始日期和结束日期的数组,获取最小的日期和最大的日期,用java实现
    packagecom.cfb.oa.m;importjava.time.LocalDate;importjava.util.ArrayList;importjava.util.List;classDateRange{LocalDatestartDate;LocalDateendDate;publicDateRange(LocalDatestartDate,LocalDateendDate){this.startDate......
  • Java游戏源码:象棋网络对战版+大学生练手项目
    学习java朋友们,福利来了,今天小编给大家带来了一款象棋网络对战版源码。你可以学习到socket编程知识,还有基础的游戏编程知识。视频演示https://githubs.xyz/show/207.mp4源码搭建和讲解 代码采用原生java类库编写,利用javaswing作为界面框架,完整源码获取地址:gitee.com/hadl......
  • JavaScript 中的 `findIndex` 方法
    ......
  • JAVA-Exploit编写(1)--HttpURLConnection库使用
    目录1.HttpURLConnection简介2.创建HttpURLConnection请求.2.1HttpURLConnection的属性2.2设置相关的请求属性2.3 设置请求头参数3使用GET方法进行请求4.POST方法进行请求4.1常规使用4.2单独调用 5. 设置代理5.1 直接设置代理5.2 配置Proxy代理类 6.......
  • JAVA-Exploit编写(2)--HttpClient库使用
    目录1.HttpClient简介1.1ApacheHttpClient特性1.2 ApacheHttpClient使用流程2.依赖导入3.HttpClient属性4.GET方式请求4.1 test2.php4.2不携带参数请求 4.3 携带参数提交4.4 支持URIBuilder对象的使用 5.POST请求5.1test3.php5.2 单个参数提交......
  • 有一个包含开始时间和结束时间的数组,要求日期从早到晚有连贯性,不能出现重叠,用JAVA判断
    packagecom.cfb.oa.m;importjava.time.LocalDate;importjava.util.ArrayList;importjava.util.List;classDateRange{LocalDatestart;LocalDateend;publicDateRange(LocalDatestart,LocalDateend){this.start=start;th......