java swing 实战——baba is you启动篇

        学完了Java面向对象、集合,再了解一些多线程以及swing的知识,可以尝试自己制作一些小游戏了。在哔哩哔哩上,很容易找到swing小游戏的教程,如飞机大战、坦克大战、俄罗斯方块等等经典游戏,在模仿的基础上,我们也可以别出心裁,制作自己的小游戏。作者在快速学习推箱子教程后,观看了【散人】神奇脑洞解谜 baba is you 强力推荐_哔哩哔哩_bilibili,受到启发,于是开始了制作。

1. 准备工作

1.1 主要开发工具

  • 开发工具:

    • IntelliJ IDEA 2021.2.3 (Ultimate Edition)

  • JDK版本:

    • jdk1.8

1.2 知识准备

  • 面向对象知识

  • Swing

  • 少量线程知识

1.3 推荐视频、书籍

使用建议:

        本教程是作者放假一周的开发回顾,尽量让大家可以做出可以运行的程序。对于一些技术问题,建议大家阅读经典书籍揣摩体会,本人开发前参考了核心技术卷I第10、11章内容,完成了书中的小Demo,之后又快速跟着黑马程序员视频学习了awt\swing,最后,跟着尚学堂项目实战,体会到了小游戏制作的一些设计逻辑。在不断收集baba is you这款游戏的资料中,边学习边开发,最终,完成了上篇的游戏。现在分享出来,希望可以提供给大家一些帮助。

2.项目启动

整个项目,我认为重要的是对数据结构的设计,本游戏开放程度较大,数据结构的设计直接影响到后续关卡的制作,本人也是尝试了一些数据结构,最终,采用Block,作为游戏的基本单元,用到了线性数据结构ArrayList以及键值存储HashMap.

 

2.1 新建project

本项目没有用到第三方库,因此普通的JavaSE工程即可。

  1. 新建项目 :选择jdk1.8即可

项目名成babaisyouUsingSwing,点击Finish,完成工程创建。

 

2.2 创建启动类

2.2.1 建包

 

考虑结合行业规范以及后期编码,在src下建立如下package

  • app 包内放置我们的启动类GameApp

  • constant放置所需常量

  • domain 放置我们最为基础的数据,相当于model层

  • level 放置绘制我们界面元素的类,相当于controller

  • ui 放置界面,即view

  • util 存放文件读取工具类

2.2.2 创建游戏窗口GameFrame

在ui包下编写游戏窗口GameFrame类,窗口大小根据游戏资源计算,详见后续教程

/**
 * 最终游戏界面
 */
public class GameFrame extends JFrame {
    private static final int DEFAULT_WIDTH = 19 * 24;
    private static final int DEFAULT_HEIGHT = 19 * 24;
    
    public GameFrame() {
        // 设置窗口大小
        this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        // 窗口名称
        this.setTitle("baba is you");
        // 设置关闭窗口即结束程序
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 设置窗口可见
        this.setVisible(true);
        // 设置窗口居中显示
        this.setLocationRelativeTo(null);
    }
}

2.2.3 创建启动类测试

在app包下建立GameApp类,运行测试

public class GameApp {
    public static void main(String[] args) {
        new GameFrame();
    }
}

运行后,如下图:

 

Guess you like

Origin blog.csdn.net/m0_46565757/article/details/122332014