java代码游戏_用Java开发简单又好玩的——雷霆战机小游戏,几行代码就搞定
发布日期:2021-06-24 17:36:52 浏览次数:2 分类:技术文章

本文共 1222 字,大约阅读时间需要 4 分钟。

目录

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

资源加载

新建项目:Java Project -> planewar

1fc46f3149400a04fb067bcf3f4c52df.png

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

999c925601e2603b5a50be00713c13c3.png

然后我们导入第三方的jar

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

6dcefd921eb3f976245ff948ace173bb.png

选择项目属性

dfac3a68691146e1adf996430cb27d8c.png

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

2c1f0c5a9dcbdd8e452c90399601031b.png
126a8666006dd5b57dbcd9a3f3eb075f.png

我们创建如下包结构

80fa792f15243b953670e7b9741bfe92.png

然后我们开始编写代码:

我们创建一个类constant

395864c4e143d6da77df2d30517e8507.png

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

d04424807c49eadb0a0f24170a6660c3.png

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

df93581bec8d51731415e25657ed8fae.png

构造方法

ce914a44216e48d044aa0018d66e65f4.png

创建主窗体系

b671b941d27baf1ce83e051d5c3a4ec0.png

补充一部分代码

bc78c43a2a7eba8333b88c6e5d6e6e0e.png

主方法

c380e45c9282593dba0790631ae6af15.png
f38cd76360aa68a97508e8ff7afbcb9e.png

此时可以加载出图片

117a12b7f7afbec675c078203399aa00.png

音乐播放

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

b13d828cbfbdc417ab48c955f1fa7a6a.png

在主窗体中添加属性

e521e54c8b8895e53b9d2c84b1c52300.png

我们读取对应的音乐文件

144c3c68c0f21909b0514d667b8b5d2d.png

此时音乐可以正常播放

4758ed13808c2315eeaafef1e7662842.png

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

42606e156cf196d1f5ae435b06b6c9ee.png

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

f89abef46d9ba9d35dd6e2878a4a120c.png

创建子弹类

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

我们先创建一个方向类

32951a2857cc09f23a45926979b25293.png

我们先创建子弹类Bullet

f998aec981437d063088dc9a5f73cfbd.png

继续补充属性

80aa3f207e13de89b8fa990e450c539e.png

初始化子弹的图片

f82cbfafa02491f7b52596cf7e738732.png

初始化的代码

c0a8032026bb289e61c0834ff9a00e15.png
89e9ceae824805acf48673287d1c3498.png

构造方法

257ce1e2a1a589c0c93b5692fb4749bf.png

赋值属性

68c176956efd60e2f70d1d89aa7cf3c5.png

条件语句中的代码 表示是不是"友好"的子弹

8d9a1a1e8564a71d66e9e77373c468f8.png

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

4070430b9450b14c4fc6710c7ccf30ae.png

不是boss的敌方子弹

2aa3078f6766106ccfaf516739e7ed71.png

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

99e1288feebb3937c9fb66412dcca1e2.png

击中飞机的方法

fcc6c410bbd780e223914129cfe7f231.png

创建一个矩形

543f69945110498f33d40b49422a6624.png

多个飞机击中判断

0f4bcb2a5ffc8bf3c3621a588c828a53.png

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

c42a2508bba5924d4a2616569e7ef1cf.png

创建爆炸和珍宝类

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

我们创建爆炸类

48993e6628556cb4f65cb9e07b4a420b.png

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

cb81fa5d125a1ef7ab93f00f26f6930a.png

设置属性和对应的资源

313829c5e3892044eb5ba4225b8aa2da.png

设置构造方法和属性方法

49256f29f89fdca6186c90a6ad6e078d.png

我们绘制爆炸效果

ed1e996896c55111f2d672ec3ded935e.png

我们继续创建珍宝类

282a26c70e8fa58d3d024ab7f88c1480.png

在主窗体中创建集合类

4fcb6b351c7f25e16a72aa85813f20b6.png

创建对应的属性类

774308144b5e8e65e2cb76c5c635334a.png

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

b09119992530cdc3f7827e62721e6d6c.png

创建绘制和移动方法

24485b3387205000e2c8ba8e174881df.png

我们继续创建导弹类

c26520c33dd7356a98f9d5dab23b3a5e.png

我们创建集合类

acb02deb44408dd985f86ffba89c3155.png

我们编写对应的属性

c0b7b325d89991b292ef87a5ff11c2f0.png

两个构造方法和矩形绘制

7372005f326d1c934bc5bea55e92be3f.png

编写绘制图形的代码

61052a6238277a6f7db536b36b0d069b.png

创建导弹和飞机类

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

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

增加主窗体的集合类

0e78ab2c75b07c08c1864689d7a00b43.png

我们继续创建导弹类

3b39746cdd2c3a985b35d3b455018280.png

我们创建集合类

2f55fa1401d60a727f25b834b1b1be25.png

我们编写对应的属性

f27a8eed9ae6f342dbabdfefa3b192da.png

两个构造方法和矩形绘制

31b71afaecc9468fcafd117ece9d44f3.png

编写绘制图形的代码

07282b158b6732e7a2a17e709f6b8b4c.png

我们创建移动方法

42c0e913790e6ebae94155b2c4cb841a.png
50c4c31e736af1814485249f6ebdb06a.png

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

7e3b7d83efbc5a8284c2f338e57a1a29.png

多个击中的方法

014441b9c3581dc328b2ff95d7ae526e.png

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

2e35255d7a9a62e7a947c010515e46a7.png

对应的属性和构造方法

2959cc80e5ba3f8e17f8bd2e162ff685.png

绘制方法和简单计算

8c1cd5648756e6c9ab5be418752557c9.png

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

7bfa5919e43a83fbb41bd5266ff12d1d.png

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

5b6427e39da8b5f68353e44155eee2da.png
d913b45943228b1079064e61effda4d7.png
41af6728c6577da7d3940d1e2fec5f1d.png
7bf27ae4d09cf0937a2d2de7886f71a8.png

创建击中方法

c3367135169f4ecf71b2e1d3fd65db49.png

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

42a29c57e71cf8f57da9cf86c6c0f963.png

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

e13889e8cea70c22cafc59ec5f5b4f13.png
f085eb9fe9edb9e841983286d04c1b98.png
a0ec8c439b9993df2165afb464164c1c.png

构造方法

eb9d78586db50f15ef9ddd356d97ab4d.png

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

a602d09271a08b2ada855aa611d5fc06.png
e5e44bf2da30c46246f97d2f103944e1.png

控制按下的代码

bdf65243dbac94b8f1e028f693d88e76.png

释放的代码

e67a711ed6860851bee4f32d0f9fd95b.png

开火的代码

3c761676e9cbbab4a8b410644a75010f.png

BOSS

8fc4eb0557d9e45f7bec0e0e21efbf50.png
08fb078e24f2960ec40d7f93296f5d9f.png

开火的代码

方向控制

a46b5064261655f27a843b9403d6125b.png

移动方法

8d5c7d856b1f5053c1ebd5accc77a8ed.png
53fdf6a4f31bfe64945161188b68442b.png
886dd01d633fd97ff4d9af1365bc4a44.png

暴走方法

4ec1936e90e069d137830011be37edf3.png

鼠标键盘控制

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

162234f0755287a254ea31064f082796.png

我们再创建一个线程类

c309a694d59f38058978f69a924145f1.png

对应的构造方法和属性

85aab954213031b80c3f9ef0c429c70b.png

线程运行类

eae92b7356c2e4e45ace5a52b7591235.png
971019afc4acd1c145e2a418cfced9b0.png
397170a9dec0674e92b1fec63e7a558d.png
9024598b390fd1ebfd203793254a32af.png

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

d69ed87e2e52337c2bd561a99bd73013.png
de6b12c5778c7772a1c4a5bdafdebc8a.png
e6d56be945210e77ccb315ba153f1a4d.png
fa1e733baed0894765a8eb419a878284.png
d29d410d78f69f26c04a2d94474bbd86.png

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

d031a4df0f15c1a12d55f3cba1508b1e.png
d9741d4b985f5ddd5b418e2fab59ecba.png

键盘监听

6fce91e0896e44bb4d3f4fcfce6d1810.png

主方法执行

18418fd9537976b1a4df97b27cc52bfe.png

转载地址:https://blog.csdn.net/weixin_34182361/article/details/113083305 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux mysql打开文件_在Linux命令行上直接运行MySQL文件
下一篇:ccs断点不停止_锅炉MFT后,汽机不跳闸,处理。

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月02日 02时32分53秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章