在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
植物大战僵尸这款游戏相信大家或多或少都玩过,那么大家有没有想过自己尝试着做一下植物大战僵尸的游戏设计呢。本文将基于Java语言为大家展示如何开发出植物大战僵尸游戏的简易版本,主要内容包括规则、对象、功能和背景音乐的相关内容设计,如果大家对此有兴趣的话,就接着看下去吧!
一、游戏设计—规则
植物大战僵尸中有一个小游戏关卡,屏幕的正上方有一个滚轮机,会随机生成植物,玩家可以选中植物后自由选择草坪来进行安放。基于此游戏模式,本文将该关卡抽取出来,单独做成了一个简易版的植物大战僵尸。屏幕左侧会自动生成植物的卡牌,单击选中后可以放置在草坪上。右侧会自动生成僵尸,不同的僵尸移动速度不同,血量不同,还有的僵尸有隐藏奖励,比如:全屏僵尸静止、全屏僵尸死亡等。这里先说一下游戏暂停的功能应该怎么做。最简单的一种暂停方式是鼠标移出屏幕,游戏暂停。所以这里需要引入一个鼠标监听器事件。如下图所示:
当然,这只是一个简单的通过监听鼠标的位置来改变游戏状态方法。还可以使用键盘监听器,当按下某个键时游戏暂停,这样的用户体验更好,但原理是一样的。
2、游戏设计—对象
首先分析一下游戏中有哪些对象。各式各样的植物,各式各样的僵尸,各式各样的子弹。那么这里就可以抽出三个父类,分别是植物、僵尸、子弹。在面向对象中,子类将继承父类所有的属性和方法。所以可以将三大类中,共有的属性和方法抽到各自的父类中。比如僵尸父类,如图所示:
植物父类、子弹父类就同理可得了。上面说到子类共有的方法需要抽到父类中,那么部分子类共有的方法该如何处理呢?比如,豌豆射手、寒冰射手可以发射子弹,坚果墙就没有射击的这个行为。所以这里就需要用到接口。如图所示:
到此为止,游戏对象的属性、方法基本都定义完了,至于图片的显示以及如何将图片画出来,只需要使用相应的API即可,这里就不做描述了。
3、游戏设计—功能
现在我们有了游戏的对象,该开始让对象加入到游戏中来,接着让他们动起来,最后还得让他们打起来。首先,让对象加入到游戏中来我是这么做的,这里还是以僵尸为例,如图所示:
首先植物入场时是在滚轮机上的,滚轮机上的移动就会涉及到追击和停止的问题。追击的方式当然是追前一个植物卡牌,但当第一个植物卡牌被选中放置到草地上后,那该如何追击呢?将植物集合分为滚轮机上的集合和战场上的集合,如图所示:
接下来该让对象们都动起来了。之前说到在父类中的移动方法是抽象方法,在各自的子类中都进行重写后,不同的对象移动方式就是各式各样的了。如图:
看着代码中对集合复杂的遍历,不得不感概lambda表达式真是个好东西,如图:
如何让对象们打起来呢?下面以僵尸攻击植物为例:
结合图片来看,黑框P代表植物,黑框Z代表植物,虚线是指两者接触的极限距离,当僵尸进入虚线内,就保证可以攻击到植物。至此,游戏的基本功能基本实现了。Java是一门面向对象的语言,万物皆对象,特征皆属性,行为皆方法。肉眼能看到的僵尸、植物、草坪都是对象,对象的特性比如血量、移动速度都是属性,对象的行为比如移动、攻击、死亡都是方法。
4、游戏设计—背景音乐
bgm是一个游戏的灵魂之一。这里给游戏添加背景音乐,可以新建一条线程专门用来执行音乐的解析和播放,如图:
这里需要注意的是,Java中解析音乐的API只支持WAV格式的文件,文件格式的转换大多数音乐播放器都可以做到。
基于Java的游戏设计之植物大战僵尸就讲到这里了,关于Java的更多经典游戏设计尽在博学谷在线IT培训平台。如果大家对这个游戏感兴趣,不妨现在就动手自己做一下。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java开发的就业方向有哪些?Java程序员市场已经饱和了吗?
Java开发的就业方向有哪些?Java程序员市场已经饱和了吗?Java开发应用比较广泛,很多公司需要java方面的程序员,随着用户体验需求要求越来越高,对于高级程序员的需求还是很大的,想要进入Java开发行业要制定好自己的职业规划。Java行业本身人才需求是供不应求。
11056
2019-08-08 09:43:59
Java基础:char 型变量中能不能存贮一个中文汉字?为什么?
char 型变量是用来存储 Unicode 编码的字符的,unicode 编码字符集中包含了汉字,所以,char 型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在 unicode 编码字符集中,那么,这个 char 型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char 类型的变量也是占用两个字节。
7267
2019-05-23 11:16:51
参加JavaEE开发培训班能找到工作吗?
虽然目前JavaEE相应的就业岗位非常多,但是由于互联网技术的高速发展,企业之间的竞争日益明显,因此企业对从业者的要求也越来越高。所以刚刚毕业或者只是通过简单自学JavaEE知识的同学,找工作的时候屡屡碰壁。越来越多的同学认识到通过参加JavaEE开发培训班系统学习知识的重要性。那参加JavaEE开发培训班能找到工作吗?
5411
2019-08-20 17:56:15
Java入门比较好的书是哪本?Java入门教材推荐
Java入门最好的书是哪本?对于刚刚入门Java的初学者而言,第一本Java入门教材必须要通俗易懂,最好能把理论知识和实战练习结合起来,而满足上述条件的书籍非《Java基础入门》莫属。《Java基础入门》是由传智播客高教产品研发部,为零基础初学者专门编著的Java学习教材。下面我们来看看这本书的详细内容吧!
6286
2019-12-05 13:09:05
Java内存模型JMM基础知识及原理
Java内存模型JMM基础知识及原理,学习过程中需要了解内存模型抽象结构、共享变量、JMM抽象结构模型、主内存与工作内存的相关知识,Java内存模型具有原子性、可见性、有序性三大特征。
4689
2020-07-27 11:58:33