在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
植物大战僵尸这款游戏相信大家或多或少都玩过,那么大家有没有想过自己尝试着做一下植物大战僵尸的游戏设计呢。本文将基于Java语言为大家展示如何开发出植物大战僵尸游戏的简易版本,主要内容包括规则、对象、功能和背景音乐的相关内容设计,如果大家对此有兴趣的话,就接着看下去吧!
一、游戏设计—规则
植物大战僵尸中有一个小游戏关卡,屏幕的正上方有一个滚轮机,会随机生成植物,玩家可以选中植物后自由选择草坪来进行安放。基于此游戏模式,本文将该关卡抽取出来,单独做成了一个简易版的植物大战僵尸。屏幕左侧会自动生成植物的卡牌,单击选中后可以放置在草坪上。右侧会自动生成僵尸,不同的僵尸移动速度不同,血量不同,还有的僵尸有隐藏奖励,比如:全屏僵尸静止、全屏僵尸死亡等。这里先说一下游戏暂停的功能应该怎么做。最简单的一种暂停方式是鼠标移出屏幕,游戏暂停。所以这里需要引入一个鼠标监听器事件。如下图所示:
当然,这只是一个简单的通过监听鼠标的位置来改变游戏状态方法。还可以使用键盘监听器,当按下某个键时游戏暂停,这样的用户体验更好,但原理是一样的。
2、游戏设计—对象
首先分析一下游戏中有哪些对象。各式各样的植物,各式各样的僵尸,各式各样的子弹。那么这里就可以抽出三个父类,分别是植物、僵尸、子弹。在面向对象中,子类将继承父类所有的属性和方法。所以可以将三大类中,共有的属性和方法抽到各自的父类中。比如僵尸父类,如图所示:
植物父类、子弹父类就同理可得了。上面说到子类共有的方法需要抽到父类中,那么部分子类共有的方法该如何处理呢?比如,豌豆射手、寒冰射手可以发射子弹,坚果墙就没有射击的这个行为。所以这里就需要用到接口。如图所示:
到此为止,游戏对象的属性、方法基本都定义完了,至于图片的显示以及如何将图片画出来,只需要使用相应的API即可,这里就不做描述了。
3、游戏设计—功能
现在我们有了游戏的对象,该开始让对象加入到游戏中来,接着让他们动起来,最后还得让他们打起来。首先,让对象加入到游戏中来我是这么做的,这里还是以僵尸为例,如图所示:
首先植物入场时是在滚轮机上的,滚轮机上的移动就会涉及到追击和停止的问题。追击的方式当然是追前一个植物卡牌,但当第一个植物卡牌被选中放置到草地上后,那该如何追击呢?将植物集合分为滚轮机上的集合和战场上的集合,如图所示:
接下来该让对象们都动起来了。之前说到在父类中的移动方法是抽象方法,在各自的子类中都进行重写后,不同的对象移动方式就是各式各样的了。如图:
看着代码中对集合复杂的遍历,不得不感概lambda表达式真是个好东西,如图:
如何让对象们打起来呢?下面以僵尸攻击植物为例:
结合图片来看,黑框P代表植物,黑框Z代表植物,虚线是指两者接触的极限距离,当僵尸进入虚线内,就保证可以攻击到植物。至此,游戏的基本功能基本实现了。Java是一门面向对象的语言,万物皆对象,特征皆属性,行为皆方法。肉眼能看到的僵尸、植物、草坪都是对象,对象的特性比如血量、移动速度都是属性,对象的行为比如移动、攻击、死亡都是方法。
4、游戏设计—背景音乐
bgm是一个游戏的灵魂之一。这里给游戏添加背景音乐,可以新建一条线程专门用来执行音乐的解析和播放,如图:
这里需要注意的是,Java中解析音乐的API只支持WAV格式的文件,文件格式的转换大多数音乐播放器都可以做到。
基于Java的游戏设计之植物大战僵尸就讲到这里了,关于Java的更多经典游戏设计尽在博学谷在线IT培训平台。如果大家对这个游戏感兴趣,不妨现在就动手自己做一下。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java8有什么变化?九大新特性
Java8有什么变化?本文将讲解Java8的九大新特性,它们分别是Java8Lambda 表达式、Java8方法引用、Java8函数式接口、Java8Nashorn JavaScript Java 8 默认方法、Java8Stream、Java8Optional 类、Java8日期时间API、Java8 Base64。
7779
2019-08-12 10:06:17
JSP四大作用域及请求范围总结
程序员在写代码的时候,难免会遇到作用域的问题,今天我们要谈的也是JSP的四大作用域。本文主要总结了JSP四大作用域page、request、session和application和它们的请求范围。
8056
2019-08-19 17:23:19
Docker开发教程学习资源
Docker开发教程学习资源,需要学习Docker概览、Docker版本与安装介绍、Docker核心技术之镜像、Docker核心技术之容器、Docker核心技术之容器与镜像、Docker核心技术之数据卷、Docker核心技术之仓库、Docker核心技术之Dockerfile、Docker核心技术之Docker-Compose。
3962
2019-11-11 19:14:44
Java架构师培训要多久?学完能到什么水平?
Java架构师培训要多久?学完能到什么水平?具体问题具体分析,这需要根据学习者自身的基础和对知识吸收消化的能力判断。如果是零基础的初学者,差不多需要半年多的时间,才能到达熟练掌握Java的水平。当然,培训完也不代表一劳永逸,学习者还需要在工作中,不断积累经验和充电,才能完全胜任Java架构师的岗位。
6545
2020-01-16 11:50:28
学Java的女生好找工作吗?适合编程吗?
在很多人认为女生不适合从事Java工作,Java工作的人逻辑性要求高,且专业操作水平要高,而女生在这方面比较弱。其实这只是一种偏见,女生也可以从事Java工作,且还能发挥自己的优势把Java编程工作做得更好。
4490
2021-01-11 17:12:03