java入门简单小游戏_Java的简单坦克打飞机小游戏实现

a75a40c491bfc42424528cbec6706e4c.png

小时候大家是否都有过小霸王游戏机在手里的经历,现在仿佛再也看不到了。我还记得那时候的一个特别好玩的射击游戏,游戏开始时候从上面落下来目标,下面左右移动自己的火炮,然后发射出去子弹击中目标获得分数。看上去是一种很简单的操作射击游戏。那么现在在这里给大家一起模拟一下实现一下该游戏的Java简单制作方法。玩玩试试吧! 废话少说,切入正题!

一、移动的火炮

移动的火炮制作原理比较简单的就是用一支画笔在读取一张素材图片的基础上把它在指定的地方画下来,在给定具体目标的位置坐标和大小的适应性调整之后,这一步还是相当容易实现的。实现代码为

Image 

同时我们的坐标的变化肯定还是要依靠键盘监听实现移动,这时候就要给主窗口注册键盘监听事件。相信着对大家来说还是比较容易的。如果有同学不清楚的话,请看一下本公众号的前一篇文章,这一过程我在之前的贪吃蛇的文章中已经有过足够的介绍,在这里就不做过多赘述了。

好了,这时候我们实现了火炮的构造和移动,接下来我们希望我们的而游戏中能够有一定的游戏体验感,那么我们就要在游戏的操作中适当增加音效。比如火炮发射和子弹击中目标,展示出特殊的声音效果还是不错的,那么实现步骤呢?

二、添加音效

添加音效这个过程说实话我也不是很熟悉(因为老师没教过,哈哈哈),只是能做到这样的效果,先上代码,我们接下来慢慢说:

首先我们要写一个方法出来

private 

在这里我们会根据传入的名称(串)当做URL解析返回一个AudioClip类的对象,这样就可以顺利使用这个方法获得音频文件的读取过程。接下来使用这个方法产生对象送给我们之前指定的对象。

AudioClip 

在这里后面就是我们的音乐文件的名字,相对路径和绝对路径有一定区别,在使用的时候注意甄别。

到了这一步,音频文件才可以适当播放(需要注意的是,这里只能播放WAV的音乐文件,对于其他类型的播放方式我也在找

)。

在API中有相应的描述

f8eee0fe20d0f8443389bb719c62b43a.png

所以接下来按图索骥播放音频,那就是

christmas

对象调用相应的静态方法就可以了。

三、发射子弹

发射子弹和火炮的移动是两条平行事件,自从子弹从火炮中产生了之后就不在有任何关联(直到自己跑到尽头或者击中目标消失)。在这里我们的思路是建立一个二维数组,在二维数组里面保存相应的坐标,每一次发射动作产生时候我们就给二维数组相应赋值。首先给二维数组默认值,当判断到里面的数不是自己的默认值的时候,我们就认为此时这里已经保存了子弹的坐标,那么就让里面的数值逐渐变化并且在屏幕上显示出来。默认值可以是零,因为你的子弹本身是有像素点的,一般小于10的时候就可以认为子弹飞到头了。

代码如下:

int

然后再一个循环里不断地去判断是否飞到了上端,是则把坐标重置。

if

四、目标构造

我们的目标本身和火炮以及子弹关系并不大,而且要随机产生。这里用到多线程的话构造出来的并发事件效果可能会更好一些,但是我们在这里暂时不用多线程,而是根据时间节点的节奏性变化随机在上层产生目标,并且和子弹相反不断下落就可以了。最最需要注意的地方就是目标本身像素的大小,不要让目标有重叠影响美观。同时目标下落时候要记住和子弹在一定范围内碰面就要一起消失。同时要注意,如果目标直接落到了底部都没有被击中是个什么样的效果,具体游戏情节不做过多考虑,我们在这里就暂且当做掉到底部会直接消失吧!

音效可以根据上面的而方法构造出来。一旦我们的目标被子弹击中而且消失的话,那么我们的工作也就完成了绝大部分了!代码如下:

for

到这里就已经简单实现了最基本的游戏需求,构造出了游戏环境。可能在看完这乱七八糟的代码之后对读者也没起到什么帮助,当然了,进步还是要自己动手的。我在这里的过程也是比较简陋,只是一个雏形。实现后的截图为

510deb7ca065eda4e58b9abc9e065688.png

五、总结
这次打飞机游戏的制作其实和之前的基本游戏制作并没有太大的突出改变之处,最不错的地方的估计就是给游戏同步增加了音效。这是我之前所没有做过的。我们给游戏增加了音效的同时接下来再把游戏适当情节丰富和游戏细节比如计分和色彩上加工一下应该就没有那么简陋了。但确实时间紧迫我并没有做到那么多,我也已经把我实现的过程中相对关键环节都具备的备份代码上传,公众号后台回复“java坦克”就可以获取,是一些基本的雏形代码,提供本题思路,剩下的还麻烦有需要的初学者朋友自己书写!

如果可以的话,关注一下我的微信公众号可好?“醉编程玩家”

3ce904a905b1e965d81c54bd40308ce1.png

小白一枚,菜鸟原创写着玩,麻烦看到这里给个赞,谢谢你鸭!

点赞真的能发财哦!

d27840b98222f95753b8640d44d823fd.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值