程序员用Java实现扫雷小游戏,引来广大网友狂点赞,直呼炸天

扫雷游戏想必大家都玩过,但有没有想过自己开发呢?Java开发过许多小游戏,其中扫雷给小白来练手非常适合不过了。

话不多说,首先展示一下游戏界面:

实现过程如下:

首先设计一个二维数组,用于存放雷和周围八个格子雷的个数,再定义两个一维数组分别存放雷的X和Y坐标,布雷,记录周围八个格子雷的个数。

我使用的是EditPlus(新建Java项目Boom,新建package:boom,新建Class:Block)

代码:

建立一个顶层容器JFrame,上面添加一个JPanel——JpMain,使用BorderLayout布局North为重新开始按钮,Center为雷区(新建一个对象,把雷区进行了封装),South为选择难度区域(任然使用一个JPanel,上面添加JRadioButton单选器),顶层容器代码:

(在Boom项目下新建Class,命名为SuperJpanel。)

代码

创建一个对象——雷区对象的初始化,整个雷区使用一个JPanel包含,这个JPanel使用GridLayout布局方式,雷区有多少个格子就添加多少个JPanel,使用卡片布局方式,每个JPanel中有两个卡片,第一个卡片为按钮,第二张卡片为JLabel——用于显示雷,周围雷的个数。

(新建Class命名为CenterJpanel)

PS:将遍历周围八个数组封装成方法,再递归调用,最后发现因为递归层次太多极其容易卡死,所以不得不另想办法,最后想到了使用队列,把每个0的点放入队列,直到判断到不为0的地方。

代码:

新建Class ——BoomMain 勾选产生主函数

主函数,初始化一个SuperJpanel对象

代码:

Java练手小项目,3个小时带你做出一个俄罗斯方块游戏

学完Java基础,一直想找一个项目实战,俄罗斯方块就是一个不错的实战项目,它原理实现比较简单。

话虽如此,我一开始还是毫无头绪,直到看到一个俄罗斯方块的视频才有了思路。俄罗斯方块还是比较适合新手练习的。

项目视频教程中会带着大家一步一步地实现这个俄罗斯方块游戏的各个功能,为了提高兴趣度,该项目也提供了图形界面。

使用到的知识点主要是JavaSE的知识,这个项目也是为了筑牢你所学的JavaSE基础,如果你也跟着一步一步完成这个项目案例,我相信你的JavaSE基本功、编码能力、分析问题解决问题的能力都会有一个大的提升;

  • JDK8.0
  • IntelliJ IDEA

小方块

游戏背景图片

•001.课程导读

•002.准备工作

•003.所使用素材

•004.编写小方块类

•005.编写四方格父类

•006.创建7个不同的形状

•007.编写俄罗斯方块主类

•008.初始化7个不同形状的位置

•009.随机生成四方格

•010.创建游戏场景

•011.绘制游戏背景

•012.绘制游戏

•013.绘制游戏主区域

•014.绘制正在下落的四方格

•015.绘制下一个将要下落的四方格

•016.绘制游戏得分

•017.绘制游戏状态

•018.判断方块是否出界

•019.判断方块是否重合

•020.按键一次四方格左移一次

•021.按键一次四方格右移一次

•022.四方格变形

•023.初始化7个形状相对位置

•024.旋转状态1

•025.旋转状态2

•026.旋转状态3

•027.顺时针旋转四方格

•028.判断游戏是否结束

•029.消行并积分

•030.判断四方格能否下落

•031.按键一次四方格下落一个

•032.瞬间下落

•033.编写逆时针旋转四方格方法

•034.创建顺时针旋转

•035.开启键盘监听事件

•036.根据按键做相应事情

•037.将俄罗斯方块窗口设置为焦点

•038.编写四方格自动下落

•039.将start方法添加到main方法中

•040.俄罗斯方块最终效果

俄罗斯方块游戏资料源码下载:

http://www.bjpowernode.com/?toutiao

用Java开发简单又好玩的——雷霆战机小游戏,几行代码就搞定

  1. 资源加载
  2. 音乐播放
  3. 创建类
  4. 创建爆炸和珍宝类
  5. 创建导弹和飞机类
  6. 鼠标键盘控制

新建项目:Java Project -> planewar

将图片文件资源和音乐文件资源拷贝到项目中

然后我们导入第三方的jar

我们将jar包存放的目录拷贝到项目中,防止找不到jar

选择项目属性

选择java build path,找到图示中jar的位置

我们创建如下包结构

然后我们开始编写代码:

我们创建一个类constant

我们再创建一个图片读取的工具类

我们创建一个窗体类,编写一个绘制图形的方法线程

构造方法

创建主窗体系

补充一部分代码

主方法

此时可以加载出图片

我们创建一个播放音乐的类

在主窗体中添加属性

我们读取对应的音乐文件

此时音乐可以正常播放

此时画面图片刷新有明显的闪动,我们再加一段代码

此时界面正常,没有闪烁现象

我们需要创建飞机、珍宝、导弹、爆炸、等实体

我们先创建一个方向类

我们先创建类Bullet

继续补充属性

初始化的图片

初始化的代码

构造方法

赋值属性

条件语句中的代码 表示是不是\”友好\”的

Else中包括一个if else 表示如果是敌方的,那么是不是Boss发出来的

不是boss的敌方

创建两个方法,的移动和绘制,需要控制是不是出界

击中飞机的方法

创建一个矩形

多个飞机击中判断

在主窗体中创建对应的属性就可以了

我们需要创建飞机、珍宝、导弹、爆炸、等实体

我们创建爆炸类

我们在主窗体中创建集合类

设置属性和对应的资源

设置构造方法和属性方法

我们绘制爆炸效果

我们继续创建珍宝类

在主窗体中创建集合类

创建对应的属性类

创建对应的构造方法和属性方法

创建绘制和移动方法

我们继续创建导弹类

我们创建集合类

我们编写对应的属性

两个构造方法和矩形绘制

编写绘制图形的代码

我们需要创建飞机、珍宝、导弹、爆炸、等实体

我们创建导弹类(其中会用到飞机类,我们先简单创建一个飞机类)

增加主窗体的集合类

我们继续创建导弹类

我们创建集合类

我们编写对应的属性

两个构造方法和矩形绘制

编写绘制图形的代码

我们创建移动方法

我们继续编写创建击中的方法

多个击中的方法

我们创建使用于boss敌机的导弹

对应的属性和构造方法

绘制方法和简单计算

移动方法(这个比较长注意看)

移动方法(这个比较长注意看)

创建击中方法

我们继续补充飞机类的内容

图片资源加载(代码较长注意)

构造方法

绘制方法和其它一些属性方法

控制按下的代码

释放的代码

开火的代码

BOSS

开火的代码

方向控制

移动方法

暴走方法

控制键盘和鼠标,我们现在主窗体添加一些属性

我们再创建一个线程类

对应的构造方法和属性

线程运行类

主窗体中我们添加新的内容

我们添加两个事件监听的方法

键盘监听

主方法执行

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。