第一步,设置游戏的窗体,

创建一个窗体类,继承Frame,(也可以不继承使用JFrame),然后在该类的构造函数中,使用Frame中的方法,设置窗体的标题,大小,位置,可显,可改变窗体大小,(注意:可以使用Toolkit方法获取屏幕的高宽;setVisible方法的位置);然后添加事件监听,在WindowListener中重写,以实现窗口关闭,(还有一个代码简单的,不过忘了咋写的了),然后创建一个类,做主线程,在main方法里将该窗体类实例化,然后就实现了一个游戏窗体。

第二步,将人物画上去

先在窗体类中重写paint方法,这个重写的paint方法会自动调用,在重写paint方法里,可以把人物画出来,关于图片的添加,在该项目里新建一个包用了存图片,图片的使用,我使用的是一个工具类,别人写好的,我所知道的有一个方法把图片对象化的,别的不太了解。

第三步,人物的移动

创建人物类,定义初始位置,和方向,速度,写一个构造器,这样就可以实例化的时候赋初始值了,写一个画笔的成员方法,在从窗体类中的重写paint方法里传过来画笔,这样这个成员方法也相当于重写paint方法了,再写移动方法,通过判断方法来控制移动,然后在paint方法中调用,现在剩下的问题就是获取方向了,在窗体类中添加按键监听,通过监听获取四个布尔值,四个布尔值对应着四个方向,(四个方向可以用枚举来表示),在写一个成员方法将四个布尔值转变为方向,在人物类中写一个含参数的方法,用来获取方向。

第四步,填加静止状态

在人物类中定义一个布尔值,然后在paint方法中判断就行了

第五步,闪烁问题

解决方法大概有两种

加一个双缓冲或者加一个画布

第六步,子弹发射,连发,消除

这个问题,要找到触发的源头,我像按空格发射子弹,那么源头就是监听空格,我在人物类中写一个开火方法,在监听中调用,而开火方法是用来获取此时人物的位置信息的,这样我们获取了子弹的初始坐标和方向,创建一个子弹类,定义的信息和人物类差不多,创建一个子弹容器,在这里写一个方法获取子弹的初始的位置和方向,这样就可以实现按一次空格,就会往子弹容器里添加一个子弹了,关于内存溢出,在子弹类中写一个方法,通过判断位置来去除这颗子弹,(容器中的子弹用getset方法来获取),然后将该方法在paint方法中调用,这子弹的数量我并没有限制。

第七步,怪物的产生和移动

这里我是开了一个线程,创建一个怪物类,new一个线程,写在该类的构造方法里,这样只要被实例化,线程就开启了,怪物的位置,移动我是通过获取四个随机数来随机生成的,怪物的数量多少和子弹相似,用容器的存储,这时候就要明确怪物的数量了,其他的和人物类相似。

第八步,碰撞,死亡

碰撞我是在窗体类中的重写paint方法中判断的,判断方法我所了解的有两种,判断两个矩形是否相交和判断两图片中心的距离是否超出,既然碰撞了,就会伤害,这时定义怪物和人物的血量和攻击,发生碰撞时判断其血量状态,进行扣血,怪物死亡了就去除这个对象,增加游戏积分,人物死亡就游戏结束

第九步,死亡界面,开始界面添加

在窗体类中定义一个开始的布尔值,在窗体类中添加鼠标监听,监听中改变布尔值,在重写paint方法类判断,该画那个图片。在窗体类中定义死亡的布尔值,人物死亡的时候改变布尔值,这和开始界面相似

第十,暂停界面

这时候,就要说一下刷新了,在主线程里,使用repaint方法,才会让窗体不断的刷新,画面才会动起来,暂停就可以提供一个布尔值来判断是否使用repaint方法。

大概就这些吧,很多都是思路,算是一个小总结,如有不足之处,请指正。

java坦克大战思路总结相关推荐

  1. Java坦克大战,基于Swing编写很哇塞的小游戏,可以做课程设计毕业设计

    Java坦克大战,基于Swing编写很哇塞的小游戏,可以做课程设计毕业设计 有图有真相 操作方法:ASDW控制移动,鼠标控制炮筒旋转,鼠标左键开枪,空格发射炮弹, 开发思路是标准的游戏开发思路,单线程 ...

  2. java 坦克大战_java课程设计之坦克大战

    本文实例为大家分享了java坦克大战的具体代码,供大家参考,具体内容如下 环境要求: 操作系统:Windows 10 JAVA虚拟机:JDK1.8以上 开发环境:Eclipse(4.5以上) 功能提示 ...

  3. java坦克大战课设报告_java课程设计之坦克大战

    本文实例为大家分享了java坦克大战的具体代码,供大家参考,具体内容如下 环境要求: 操作系统:Windows 10 JAVA虚拟机:JDK1.8以上 开发环境:Eclipse(4.5以上) 功能提示 ...

  4. Java坦克大战游戏源码(java坦克大战)

    Java坦克大战游戏源码(java坦克大战) public Swingtest002() {// 设置标题setTitle("请登陆");// 绝对布局setLayout(null ...

  5. java坦克大战总体功能设计_Java坦克大战设计报告.doc

    Java坦克大战设计报告.doc <语言设计> 设计报告 信息工程学院专业班级:::指导老师:2011年7月22日 目录 目录2 题目一 坦克大战4 1.1题目简介4 1.2设计的内容.要 ...

  6. Java坦克大战(四)

    这是我的坦克游戏大战的最后一版,里面添加很多新的功能.这个坦克大战的有很多不足之处,但是对于初学者来说依然是一个很好的练习项目,从中我们可以学习Java基础知识,将知识与项目结合,学习面向对象编程思想 ...

  7. java坦克大战(1.0)

    坦克大战 后面开始学习怎么使用java制造一个坦克大战游戏 但是不是直接开始做,而是随着这个游戏程序的制造,一边学习新知识融入到游戏中.包括多线程,反射,IO流- Java坐标体系 在几乎所有的坐标中 ...

  8. java坦克大战爆炸效果_Java极致毁童年系列、你们火星的坦克大战这样的吧

    原标题:Java极致毁童年系列.你们火星的坦克大战这样的吧 这是使用java开发的一个单机版的小游戏 (未使用任何游戏引擎) 和经典版的坦克大战有些不同, 这里是纯坦克之间的战争, 英雄坦克并不用保护 ...

  9. linux社区的java坦克大战,Java编程:坦克大战游戏的设计

    三.总结分析 其实坦克大战游戏设计的目的并不是想要单纯的做一个小游戏,二是为了加强对多线程的掌握,这一点我想应该可以通过游戏时一共运行二十二个线程来证实吧.尽管初衷比较单纯,但是设计过程之中却感觉自己 ...

  10. java 坦克大战 教程_[Java教程]坦克大战(一)

    [Java教程]坦克大战(一) 0 2016-09-16 08:00:05 坦克大战(一) 相信大家对坦克大战都不陌生,并且网上也有很多用java实现的小程序,最近用了几天时间将其使用javaScri ...

最新文章

  1. 倾斜——让设计更有冲击力
  2. 5种处理js跨域问题方法汇总(转载)
  3. 全景图拍摄_全景效果图制作软件如何选择?全景图拍摄有哪些步骤?
  4. Android线程优先级设置方法技巧
  5. “==”和“equals”
  6. 8中间件,csrf跨站请求伪造,auth模块
  7. CentOS7.2下配置SOCKS5代理
  8. python基础整数和浮点数(一)
  9. idc机房建设费用_机房建设方案及报价清单.doc
  10. JDK 安装与环境变量配置(Win10详细版)
  11. 语音数据增强算法汇总(附代码)
  12. 读取AutoCAD中的样条曲线(一)
  13. pycharm(Idea)破解到2100年
  14. linux上如何搭建Java环境
  15. 小蚁摄像机存储到计算机,小蚁摄像机电脑客户端
  16. 独家对话徐翔妻子:我为什么起诉离婚
  17. BUUCTF:大流量分析(一)
  18. 读刘未鹏老大《你应当如何学习C++(以及编程)》
  19. 2020最新微信棋牌游戏H5域名防封的解决方案
  20. 树莓派魔镜项目——笔记三 第三方库

热门文章

  1. 求邻接矩阵matlab,如何使用MATLAB绘制邻接矩阵
  2. 如何安装vs2010助手?
  3. Win10自带无线投屏功能(含无安装失败解决办法)
  4. 客快物流大数据项目(二):物流项目详细介绍
  5. 30天自制操作系统笔记
  6. 开闭原则(开放封闭原则)
  7. 0基础可以考CPDA数据分析师证书吗
  8. 服务器系统能连wi-fi吗,电脑怎么用wifi连接iphone
  9. Arm 中国原 CEO 被“罢免”,新指定“官方”:已获员工大力支持
  10. Hadoop环境搭建学习(1)