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

news/2025/1/18 20:14:17/文章来源:https://www.cnblogs.com/hadluo/p/18678793

前言

学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;@Overridepublic 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);}
}

 

结尾语

源码仅供学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/871408.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux搭建Slurm和pbs单机版

SlurmSlurm 是高性能计算集群的出色工作调度工具。此外,当你需要同时运行多个程序并将它们排成队列,同时确保计算机或服务器不超载时,它也是本地台式机或单台服务器上的重要工具。此外,在与其他用户共享服务器或需要通宵或连续数周运行多个工作时,它也非常有用!在这里,我…

Java游戏源码:天天酷跑+大学生学习源码

学习java朋友们,福利来了,今天小编给大家带来了一款天天酷跑源码。注意:此源码仅供学习使用!!视频演示 https://githubs.xyz/show/209.mp4 源码搭建和讲解 代码采用原生java类库编写, 利用java swing作为界面框架,完整源码获取地址: gitee.com/hadluo/java_game01.git 启…

2024春秋杯冬季赛day2writeup_cyi

2024春秋杯冬季赛day2 misc wp 解题过程 misc Weevils Whisper 操作内容: 筛选http流,一开始就把马上传了搜索可知这是weevely的webshell 这篇讲的很详细了 https://xz.aliyun.com/t/11246?time__1311=Cq0xRD0Q0QD%3DdGNeeeqk75YitmczLbD#toc-5 拿了这篇的解密脚本 https:/…

长期更新IntelliJ IDEA安装永久破解教程

IntelliJ IDEA版本亲测IntelliJ IDEA 2024.3.2 ✔ IntelliJ IDEA 2024.3.1 ✔ IntelliJ IDEA 2024.2.* ✔ 介绍 JetBrains是一家专注于创建智能开发工具的前沿软件公司, 旗下常用的软件有IntelliJ IDEA、PhpStorm、PyCharm、Rider、RubyMine、RustRover、WebStorm、Goland、CLi…

5k之力!!!

卡了不知道多少页...(

长期更新IDEA安装永久破解教程

IntelliJ IDEA版本亲测Version 2024.3.2 ✔ Version 2024.3.1 ✔ Version 2024.2.* ✔ 介绍 JetBrains是一家专注于创建智能开发工具的前沿软件公司, 旗下常用的软件有IntelliJ IDEA、PhpStorm、PyCharm、Rider、RubyMine、RustRover、WebStorm、Goland、CLion等。 IntelliJ ID…

windows hyper-v 虚拟机 虚拟磁盘链无法访问 父级虚拟硬盘的标识符和差异磁盘的标识符不匹配 解决方法

参考链接:修复链断裂的虚拟磁盘 - 知乎 报错信息:试了很多方法没有找到合适的方案, 上图中的编辑按钮是灰色,解决方法,点击浏览,随便选一个可选项,选中后,编辑按钮就可用了 然后点击浏览,再把原来的虚拟硬盘重新选回来,这时候,你会发现编辑已经可用了,这个是有点气…

hadoop--mapreduce--Slider

https://incubator.apache.org/projects/slider.html

python 的版本、依赖包、虚拟环境管理

如何对 python 进行版本,依赖包的管理我并不是 python 开发者,但突然对这个话题感兴趣,所以就和 AI 聊了起来,以下是一些聊天笔记。 注意,这里可能有部分内容是过时或者错误的,以官方文档或者实际效果为准。在电脑上安装 python 之后,就可以直接在控制台执行 python 脚本…

How Far Are We to GPT-4V? Closing the Gap to Commercial Multimodal Models with Open-Source Suites

InternVL1.5: 更强的视觉编码器,动态处理高分辨率图像,高质量的双语数据集。主要内容 对标商业模型,提出InternVL1.5。更强的视觉编码器(InternViT-6B),动态处理高分辨率图像(将图像分成448*448的tails,最高支持4K分辨率),高质量的双语数据集(显著提高了OCR和中文相…

在ByteTrack中使用DanceTrack数据集

从github下载DanceTrack项目(不包含数据集,数据集需要单独下载) git clone https://github.com/DanceTrack/DanceTrack.git修改convert_dance_to_coco.py中数据集的位置,然后运行,将数据集格式转化为coco格式将DanceTrack中ByteTrack中的相关文件拷贝到ByteTrack项目中 Danc…

EdgeRunner

WSL2配置代理 - Sherioc - 博客园 EdgeRunner论文解读环境配置显示报错是FlashAttention需要CUDA 11.7及以上版本。 之前FriNet是CUDA 11.1,重新装了CUDA 11.8(并且已经改好设置),但是还是构建失败。 2025/1/18,又能构建了……(very slow)代码 首先注意到了License 1、l…