基于JAVA的简易坦克大战(八)
来源:互联网 发布:明史·海瑞传为何入乎 编辑:程序博客网 时间:2024/05/16 01:01
4.2.5 爆炸效果类算法
1、爆炸效果类通过在子弹有效打击的时候,在子弹和击杀坦克接触的坐标上按规定的爆炸步数,画出不同半径的圆来模拟爆炸效果的。
2、爆炸效果类的设计源码:
import java.awt.*;public class Explosion {private int x;private int y;private TankClient tc = null;private int step = 6;private int size[][] = {{10,10},{20,20},{30,30},{35,35},{20,20},{5,5}};public static void main(String[] args) {// TODO Auto-generated method stub}public Explosion(int x, int y, TankClient tc) {super();this.x = x;this.y = y;this.tc = tc;}public void drawExplosion(Graphics g){Color c = g.getColor();g.setColor(Color.YELLOW);for(int i = 0;i < step;i++ ){g.fillOval(x + 10, y + 10, size[i][0], size[i][1]);}g.setColor(c);}}
4.2.6 墙体类算法
1、墙体类实现了游戏中墙体的draw方法:通过调用JAVA内部封装的画图方法实现了简易墙体的绘制。
2、子弹与墙体的碰撞检测以及敌我双方坦克与墙体的额碰撞检测是在坦克大战管理类中实现的。碰撞检测是通过判断对象实例的双方所占的额范围是否重合来实现的。挡子弹与墙体(非水墙)碰撞时,子弹live = false,并将该子弹从坦克大战管理类的子弹集合中删除(线程重画将不会再次画出该子弹)。当坦克和墙体发生碰撞时,坦克的坐标会自动返回坦克上一次的坐标(oldx,oldy),这样就可以解决坦克穿墙的问题了。
墙体类设计源码:import java.awt.*;public class Wall {private int x;private int y;private int width;private int height;private int number;//墙体类型编号private TankClient tc = null;public static void main(String[] args) {// TODO Auto-generated method stub}public int getNumber() {return number;}public Wall(int x, int y, int width, int height, int number, TankClient tc) {this.x = x;this.y = y;this.width = width;this.height = height;this.number = number;this.tc = tc;} public void drawWall(Graphics g){ Color c = g.getColor(); //土墙 if(number == 0) { g.setColor(Color.GRAY); g.fillRect(x, y, width, height); } //海 if(number == 1) { g.setColor(Color.BLUE); g.fillRect(x, y, width, height); } g.setColor(c); } public Rectangle getRect(){ return new Rectangle(x,y,width,height); }}
- 基于JAVA的简易坦克大战(八)
- 基于JAVA的简易坦克大战(一)
- 基于JAVA的简易坦克大战(二)
- 基于JAVA的简易坦克大战(三)
- 基于JAVA的简易坦克大战(四)
- 基于JAVA的简易坦克大战(五)
- 基于JAVA的简易坦克大战(六)
- 基于JAVA的简易坦克大战(七)
- 基于java的坦克大战实例
- 基于java swing的坦克大战游戏
- JAVA基础课程设计 简易坦克大战
- 坦克大战小游戏(Java)
- java坦克大战(窗体)
- java坦克大战(源码)
- java坦克大战0.3(画出代表坦克的实心圆)
- 用java实现的坦克大战
- java制作简单的坦克大战
- Java项目实战:坦克大战(1)
- ORACLE ora-00942 错误解决
- iOS动态库
- 一致性哈希算法及其在分布式系统中的应用
- adb root错误信息adbd cannot run as root in production builds问题解决
- Android Alarm驱动源代码分析(Alarm.c)
- 基于JAVA的简易坦克大战(八)
- 说说知名软件的伪装和防范(下)
- OpenSessionInViewFilter 的配置及替代方案
- java UDP报文的发送与接收
- 黑马程序员----java学习笔记之由int转换成byte
- Html DIV事件属性
- 在where语句中引用取别名的列
- WIN 7 MSN 80040154 登录问题
- Spring中PROPAGATION_REQUIRED的意思?