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.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

结尾语

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

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
植物大战僵尸》是一款非常经典的休闲游戏,它的源码是使用Java语言编写的。这款游戏主要由游戏引擎、角色、地图和游戏逻辑几个部分构成。 首先,游戏引擎是整个游戏的核心部分,它负责游戏的初始化、界面显示、资源加载和用户交互等功能。游戏引擎使用Java语言编写,通过类和方法的封装,可以方便地实现游戏的各种操作。 其次,角色是游戏中基本的单位,分为植物和僵尸两大阵营。植物有各种不同的类型,如豌豆射手、寒冰射手等,每个植物都有自己的属性和技能,玩家需要合理安排植物的位置和使用技能来对抗僵尸。僵尸也有各种类型,如普通僵尸、路障僵尸等,它们会从画面的一端逐渐向玩家的基地前进,玩家需要通过种植合适的植物来阻止僵尸的进攻。 地图是游戏的舞台,它分为多个不同的关卡,每个关卡有自己独特的布局和地形。地图中有建筑物、草地、水池等不同的区域,玩家需要根据地形特点来选择合适的植物进行种植,以防止僵尸过来。 最后,游戏逻辑是整个游戏的控制中心,它负责处理各种游戏事件和状态的更新。比如,当玩家种植了植物后,游戏逻辑会根据植物的属性和技能来计算伤害以及僵尸的血量和速度等,然后更新游戏界面的显示和玩家的得分。 总之,《植物大战僵尸》的源码主要通过Java语言实现了游戏引擎、角色、地图和游戏逻辑几个部分,让玩家可以体验到植物与僵尸之间的刺激战斗。这款游戏源码的编写不仅考验了开发者对Java语言的熟练程度,还需要充分理解游戏的规则和玩法,保证游戏的稳定性和可玩性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值