提及Java,很多人都会问Java开发做过哪些游戏啊,怎么都没听说过呢,那么今天小编就为大家分享下,它都开发过哪些经典游戏吧!Java不仅开发过电脑端的游戏,手游也有开发过,经典的游戏有很多,比如《我的世界》、《吃豆》等等,今天小编想为大家分享一个用Java开发的经典游戏《超级马里奥》。
如果有想学习java的同学,可来我们的java技术学习QQ群的哦:165080868里面免费送整套系统的java教程!
《超级马里奥》任天堂公司开发的著名横版过关游戏,是电子游戏历史上销量最大的系列游戏之一,早在任天堂的红白机时代就名声在外了,这个游戏几乎移植到了所有的任天堂游戏机,也包括电脑和手机。
首先小编来介绍一下游戏的基本功能
1、人物向左向右行走(键盘监听)
2、人物跳跃
3、人物发射子弹
4、人物检测和障碍物之间的碰撞
5、背景图片的移动
其次看看游戏的运行界面
三、游戏大致实现思路:
1.窗体
2.自己角色的添加
3.背景图片的添加
4.背景图片的移动
5.人物的移动和跳跃
6.砖头、水管等等障碍物的添加
7.任务和障碍物的碰撞
难点分析:
1.人物的多键控制
1)给人物设定方向boolean变量:向左、向右、向上、向下
2)通过键盘监听来修改方向的变量值
按下某个键的时候,我们把相应方向改为true,释放的时候改false
2.地图配置
自定义文件读取方式实现:文件流的使用和字符串String类的方法调用
3.碰撞检测
封装一个Rectangle类的对象
4.子弹添加
1)先定义一个容器,这个用于封装所有的子弹对象
2)按下某个键的时候,创建一个子弹对象(以角色的坐标为基准初始化)
3)把子弹对象添加到容器当中
4)在paint方法中,遍历容器,取出子弹对象并进行绘制
5)检测子弹如果超出了窗体边界,则需要把当前子弹从容器当中移除掉
四、程序源代码:
代码结构图:分了三个包、敌人类包、游戏界面类包、游戏地图配置包
五、项目总结:
看似是个小项目,其实里面有很多功能也是需要去认真思考的,开发游戏首先不要觉得他有多难,我们应该先构建一个思路。
每款游戏都有它特定的地图,地图都很炫酷,首先通过文件输入流将文件数据读入,将字符转换为数字,并存储在二维数组中,后面,通过遍历二维数组的不同位置的值,在相应的格子填充相应的障碍物;地图就这样配置好了;当游戏人物在窗体走的时候,觉得一直是人在走,其实,人物走到中间或者走到某一位置的时候,人物已经是在原地踏步了,取而代之的是背后那张长度很长的背景的图片在移动,任务的左右移动相对而言比较简答实现,跳跃功能就不是那么简单了,需要永达线程,跟后面障碍物碰撞检测又有关系,当没有碰到的时候,人物要往下掉,一不注意就会出现各种bug,比如,可以一直跳,在跳的同时还能再跳,还有就是下降可能不会落地面的同一高度,可能会高于地面的高度,可能会低于地面的高度;障碍物的添加,我们是通过配置地图的方式,配置地图有时通过读入文件的操作,大致的原理是将后面的那张的背景图片划分成很多的小格子,将这些小格子用代码转换为二位数组,二维数组可以存入不同数字,代表不同的障碍物,通过操作文件就可以轻易配置地图;
欢迎关注程序员白胖胖,可视化学习java,每天更新文章,让Java学习更加简单。
声明:本文内容来源于网络(云间科技),如有侵权请联系删除