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

前言

学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.gitpublic 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);}
}
// 完整源码: gitee店康姆/hadluo/java_code.git

结尾语

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

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

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

相关文章

mysql5.7.30忘记root密码

windows系统安装了mysql5.7.30,在使用navicat链接mysql时候,提示 如何解决: 打开任务管理器的服务,查看有没有MYSQL服务。 如果没有,则按照下面的csdn博客进行操作。 https://blog.csdn.net/clj198606061111/article…

本机时间与远程机时间同步一致

在远程开发过程中,确保本机时间与远程机时间一致非常重要,特别是对于依赖时间戳的操作(例如 ROS 中的 TF 变换)。以下是一些同步本机与远程机时间的方法: 方法一:使用 ntpdate 同步时间 在本机上同步时间…

Eclipse 2024最新版本分享

一、软件介绍 Eclipse是一个开源的、基于Java的可扩展开发平台,最初由IBM公司开发,后于2001年贡献给开源社区,并由Eclipse基金会负责管理和开发。 如果在官网上下载比较慢,可以试试从云盘中下载,解压即可使用。 二、下…

Codeforces Testing Round 1 B. Right Triangles 题解 组合数学

Right Triangles 题目描述 You are given a n m nm nm field consisting only of periods (‘.’) and asterisks (‘*’). Your task is to count all right triangles with two sides parallel to the square sides, whose vertices are in the centers of ‘*’-cells. …

Nacos 扫盲

文章目录 Nacos 技术扫盲文档什么是 Nacos?Nacos 的主要功能Nacos 的使用场景如何使用 Nacos使用示例Nacos 的优缺点与其他同类工具的对比结论 扩展如何确认自己的项目有没有使用Nacos1. 检查配置文件2. 检查项目依赖3. 检查代码中是否有 Nacos 相关的使用4. 检查启…

使用Pogo-DroneCAN CANHUB扩展板扩展飞控的CAN口

关键词:Ardupilot,Pixhawk,DroneCAN CANHUB扩展,扩展飞控CAN口 keywords:Ardupilot,Pixhawk,DroneCAN CANHUB Extend 摘要:使用Pogo-DroneCAN CANHUB扩展板扩展飞控CAN口&#xff…

面试专区|【46道软件性能测试高频题整理(附答案背诵版)】

性能测试包含的方法有哪些(至少列举5种)? 性能测试是评估软件系统在各种条件下的表现的过程,其中包括多种测试方法。以下是其中一些常见的性能测试方法: 负载测试:通过模拟不同负载情况来测试系统的性能表…

面试专区|【75道软件测试基础高频题整理(附答案背诵版)】

软件测试分为几个阶段 各阶段的测试策略和要求? 软件测试分为以下几个阶段: 单元测试阶段:测试策略注重对软件的最小代码单元进行测试,通常由开发人员进行。要求所有关键函数和方法都需要被测试覆盖,测试案例应覆盖正…

一文讲解Docker入门到精通

一、引入 1、什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,它允许在一台物理机上创建多个独立的虚拟环境,这些环境被称为虚拟机(VM)。每个虚拟机都可以…

element ui form 表单验证

表单验证方法 在el-form元素上总体设置校验规则rules&#xff0c;下面是官方案例 <el-form :model"ruleForm" :rules"rules" ref"ruleForm" label-width"100px" class"demo-ruleForm"><el-form-item label"…

湖北大学2024年成人高考函授报名专升本会计学专业介绍

湖北大学&#xff0c;这所坐落于历史文化名城武汉的高等学府&#xff0c;自其创立之初&#xff0c;便秉持着“厚德博学&#xff0c;求是创新”的校训&#xff0c;致力于培养一代又一代的优秀人才。而今&#xff0c;为满足广大社会人士对高等教育的渴求&#xff0c;特别是那些已…

【Java EE】Spring IOCDI

Spring IOC & DI 文章目录 Spring IOC & DI一、Spring是什么&#xff1f;二、IOC(控制反转)2.1 通俗理解2.2 造汽车的例子理解IOC2.3 IOC详解1. 获取Bean2. 方法注解——Bean1. 应用场景&#xff1a;2. 应用方法&#xff1a;3. 注意要点&#xff1a; 特别注意: 四、DI4…

【第10章】MyBatis-Plus持久层接口之Db Kit

文章目录 前言一、使用示例二、使用提示总结 前言 Db Kit 是 Mybatis-Plus 提供的一个工具类&#xff0c;它允许开发者通过静态调用的方式执行 CRUD 操作&#xff0c;从而避免了在 Spring 环境下可能出现的 Service 循环注入问题&#xff0c;简化了代码&#xff0c;提升了开发…

计算经纬度坐标之间的真实距离

要计算两组经纬度坐标之间的距离&#xff0c;我们可以使用大地测量学中的公式&#xff0c;例如Haversine公式或者更精确的Vincenty公式。这里我将使用Haversine公式&#xff0c;因为它适用于小范围内的距离计算&#xff0c;且计算相对简单。 Haversine公式的基本形式如下&…

计算机视觉 | 基于 PointNet 网络的飞机零件 3D 点云分割

目录 一、简要介绍二、环境设置2.1 实验配置2.2 必要库安装 三、数据集解析3.1 数据集加载3.2 数据文件夹结构3.3 点云数据可视化3.4 数据获取与预处理3.5 数据集定义 四、模型组网4.1 PointNet 介绍4.2 Paddle模型组网4.3 模型概要 五、模型训练六、模型预测七、总结 Hi&#…

2.1 程序设计语言基础

程序设计语言概述 常见的编程语言 编译和解释 程序设计语言的基本成分 数据成分、运算成分、控制成分、传输成分 函数 传值调用、传址调用 编译程序基本原理

使用Python实现一个简单的密码管理器

文章目录 一、项目概述二、实现步骤2.1 安装必要的库2.2 设计密码数据结构2.3 实现密码加密和解密2.4 实现主要功能2.4.1 添加新密码2.4.2 显示所有密码2.4.3 查找特定密码2.4.4 更新密码2.4.5 删除密码 2.5 实现用户界面 三、代码示例3.1 加密和解密示例3.2 用户界面示例 在现…

window上部署sql server改动端口、和sqlserver的一些还原、批量插入存储过程的命令

1.端口的查看和启动 --windows上安装上sql server数据库后&#xff0c;搜索界面搜索sql&#xff0c;会出现配置管理器&#xff0c;点击进入 --进入后再次选择配置管理器 2. sqlserver数据库还原图形化 sqlserver还原数据库时会使数据库进入一个restore的还原状态&#xff0c;…

昇思25天学习打卡营第6天|Vision Transformer

文章目录 昇思MindSpore应用实践基于MindSpore的Vision Transformer1、Vision Transformer&#xff08;ViT&#xff09;简介网络结构 2、Attention模块Encoder部分用到的功能函数&#xff1a;整体构建ViT模型 3、模型训练4、模型验证 Reference 昇思MindSpore应用实践 本系列文…

前端无感登录(无感刷新token)

1. 在响应器中拦截&#xff08;判断token返回过期后&#xff0c;调用刷新token的接口&#xff09; 2. 后端返回过期时间&#xff0c;前端判断token的过期时间&#xff0c;去调用刷新token的接口 3. 写定时器&#xff0c;定时刷新token接口 流程&#xff1a; 1. 登录成功后保存两…