在线客服
扫描二维码
下载博学谷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行业本身人才需求是供不应求。
10819
2019-08-08 09:43:59
菜鸟自学软件编程入门?基础理论书籍推荐
菜鸟自学软件编程入门?基础理论书籍推荐,对于自学软件编程入门学习者来说是十分有必要的。这是因为大家在学习初期,往往对软件编程缺乏相关知识的了解,不知道从哪里入手比较好。看完基础理论书籍,对学习内容有了一定理解、梳理后才好制定一份适合自己的学习大纲。小编将为大家推荐十本软件编程入门基础理论书籍,希望可以给大家借鉴。
6879
2020-01-11 10:03:36
Java工程师面试知识点梳理汇总
如今,大多数高端企业级应用都在使用Java,除了大型企业级应用,还有许多游戏开发、大数据的架构都是通过Java来完成的。因此,Java的就业面可以说是十分广泛了。本文专门为大家梳理汇总了Java工程师面试的必备知识点,内容包括数据库、技术框架、项目管理、项目部署以及开发模式,下面一起看看吧!
5126
2020-04-09 21:35:52
优化MySQL数据库的方法有哪些?
优化MySQL数据库是一个很大的目标,要完成这一目标,我们首先要在分析并找出问题的基础上,展开优化的具体思路。因此我们可以先分析影响数据库性能的因素,一般是因为SQL查询速度慢,大量并发占满数据库连接数,CPU时用率过高,服务器硬件损坏,再或者是IO的问题。总的来说,针对不同的问题有与之对应的优化方法。下面我们可以通过一个项目实战,来具体聊聊优化MySQL数据库的方法。
4201
2020-04-10 16:01:52
0基础自学Java可行吗?
0基础自学Java可行吗?这个问题没有人可以打包票告诉你一个准确的答案,毕竟每个人的学习能力和天赋都是不一样的,但是有一点可以确定,只要找准了方向,愿意踏踏实实的努力学习,完全0基础也可以学好Java。因此对于零基础的学习者而言,要思考的不是自己行不行,而是应该怎么做。只有在摆正了学习心态的基础上,我们才能来讨论自学Java的相关问题。
4570
2020-04-17 18:55:52