苏苏爱自由

生如夏花之绚烂,死如秋叶之静美。

排序:
默认
按更新时间
按访问量

TankWar 单机(JAVA版)版本2.3~版本2.4 为坦克画血条

运行结果: 为了在坦克上方画血条 。血条首先要有坐标x,y  宽和高width和height 血量的多少life也要有。 所以新建类Life要有这些参数 Life类如下: package tankWar; import java.awt.Color; import java.a...

2016-10-14 14:38:48

阅读数:2298

评论数:1

TankWar 单机(JAVA版)版本2.2 超级炮弹

既然我们能够实现一个方向的发子弹,那么根据同样的道理 也能够实现八个方向的发子弹。 首先在Tank类的KeyPress方法里面加上按键A的事件 // 我方坦克的键盘按下事件 public void keyPressed(KeyEvent e) { // TODO Auto-generate...

2016-10-14 14:10:35

阅读数:1525

评论数:0

TankWar 单机(JAVA版)版本2.1 坦克之间不能相互穿越

首先说明: 如果敌方坦克互相碰撞,全部回到移动之前的位置 如果我方坦克和敌方坦克碰撞,我方坦克血量减少30,敌方坦克死亡 运行结果: 代码: 首先是tankHitTanks(Tank)方法 // 坦克撞击坦克事件 public boolean tankHitTank...

2016-10-10 23:02:21

阅读数:1719

评论数:0

TankWar 单机(JAVA版)版本2.0.5 坦克撞墙的处理

首先附上运行结果: 从图中可以看完无论是我的坦克 还是敌方坦克都不能通过石头墙 土墙 水池。可以通过灌木丛 道理和子弹击中坦克一样。获取地图的矩形位置,坦克的矩形位置,判断两个矩形是否相交。如果相交再根据地形是否为灌木丛 等,让坦克回到移动前的位置。 首先在wall类中求出各种地形...

2016-10-09 19:59:09

阅读数:2425

评论数:0

TankWar 单机(JAVA版)版本2.0.1 在地图中加入墙体

在地图中加入障碍物,首先说说我的思路。 我把整个panel看作一个二维的数组,然后为这个二维数组赋不同的值。 二维数组的值表示我们地图所需的土墙  石头墙  灌木丛 水池等。 在加载地图时我们遍历地图集合,画出地图。 首先新建了一个Wall类 package tankWar; import ja...

2016-10-08 23:04:03

阅读数:1758

评论数:2

TankWar 单机(JAVA版)版本1.9 敌军坦克自动移动 自动攻击 及判断边界

按照项目来吧 首先是让敌军坦克动起来 ,要想让敌军坦克动起来 要明白我方坦克是怎么动的呢? 你会说按上下左右键 ,仔细想想怎么让敌军坦克模拟按了上下左右键? 我们按上下左右键主要是让给坦克一个方向,不停按就会移动 也就是步数。 概括可以得到 只要给坦克步数和方向就能实现自动移动了。 获得...

2016-10-08 17:52:01

阅读数:2177

评论数:1

TankWar 单机(JAVA版)版本1.7&&版本1.8 坦克死亡的爆炸和画出多个敌方坦克

首先看版本1.8  添加多辆坦克。 还记得在前面版本1.5中我们用了一个集合用来保存敌方坦克吗? 用处就是在这里了   修改addEnemyTanks方法  循环多次  就能创建多个坦克了 比如加入八个敌方坦克 // 向集合中添加敌方坦克 private void addEnemyTa...

2016-10-07 20:13:56

阅读数:1782

评论数:0

TankWar 单机(JAVA版) 提前优化 图形化

有人给我说画的坦克太难看了   本来我是打算在最后在用图片的 既然这样  那么在后面我们就使用图片吧 所有图片都在源代码里面 请自己下载  在最下面 到目前我们用到图片的地方只有子弹,敌方坦克和我方坦克的八个方向  在这里我们使用ToolKit工具箱里面的getImage方...

2016-10-07 13:46:16

阅读数:1659

评论数:0

TankWar 单机(JAVA版) 版本1.6 将敌人坦克击毙

可以看看ppt的步骤。其实思路也是很简单 把坦克 和子弹都看作一个矩形 Rectangle 然后使用 Rectangle类中的碰撞检测方法 A.intersects(B) 如果返回值为true就表示矩形A和矩形B相交,即碰撞。 既然有了思路 那么就要一点一点解决问题。 首先要获得子弹的矩形对象和坦...

2016-10-07 13:05:16

阅读数:1651

评论数:0

TankWar 单机(JAVA版) 版本1.5 画一辆敌方的坦克

既然是敌方坦克  肯定和我方坦克有区别  那么就在Tank类中定义一个布尔型的good变量 用来区分敌我坦克,同时将good变量放入构造方法。 public Tank(int x, int y, int width, int height,boolean good) { super(); ...

2016-10-07 11:25:13

阅读数:1587

评论数:0

TankWar 单机(JAVA版) 版本1.0~版本1.4 坦克方向打出多发子弹 并解决子弹不消亡问题

首先新建一个子弹类 由于要画子弹,所以变量肯定要有坐标x,y,宽高width,height.方法要有draw方法用来绘制子弹 而子弹移动还有子弹的方向dir.子弹的移动速度speed。 要判断子弹是否消亡 所以还要布尔变量bLive表示当前子弹的存亡状态 所有变量的Get set方法一定要...

2016-10-06 20:09:12

阅读数:1798

评论数:0

TankWar 单机(JAVA版) 版本0.7~版本0.9 让坦克实现八个方向的移动

运行结果: 版本0.7的项目要求是将坦克单独封装为一个类  在前面我们一直就是按照把坦克封装承类实现的。所以这里就不再写了。 然后就是版本0.8了  控制坦克八个方向移动。 首先说一下思路: 我们可以设置四个方向的boolean变量 然后根据键盘事件  来判断你按了哪个键来使对应方向的boo...

2016-10-06 13:17:11

阅读数:2055

评论数:0

TankWar 单机(JAVA版)优化炮杆和坦克移动方向不一致

在上篇文章中我们发现炮杆方向和移动方向不一致  如图: 那么要怎么优化呢? 也就是在画炮杆时根据当前坦克的方向画。所以需要一个枚举变量Direction 来监视当前坦克的方向 新建一个枚举变量: package tankWar; public enum Direction { U,D,L,...

2016-10-05 13:22:20

阅读数:1822

评论数:0

TankWar 单机(JAVA版) 版本0.4~版本0.6 让坦克动起来

版本0.4的项目要求是让坦克动起来 由于在版本0.6也是让坦克听从我们指挥  等会再写 在这里主要是建立一个屏幕刷新线程  使屏幕达到时时刷新的效果 代码如下: public class updateThread extends Thread{ @Override public void ...

2016-10-05 12:47:05

阅读数:1830

评论数:0

TankWar 单机(JAVA版) 版本0.3 画出坦克

其实就是通过自定义的panel  重写里面的paint方法  使用Graphics类画一个圆 然后把自定的panel添加到窗口中 由于想到tank不能只画一个  所以我们封装一个tank类  里面有一个draw方法 用来画 坦克 通过实例化tank  调用draw方法就能实现画tank了

2016-10-05 12:05:37

阅读数:1706

评论数:0

TankWar 单机(JAVA版) 版本0.1&&版本0.2 显示一个窗口

上面是项目要求   继承JFrame  就能实现一个窗口了 没有什么好解释的 具体看代码注释 package tankWar; import javax.swing.JFrame; public class TankClient extends JFrame{ //窗口的高度 public...

2016-10-05 11:00:37

阅读数:1524

评论数:0

TankWar单机 (JAVA版) 目录

早就想写了  一直都在忙  暑期去了无锡一个月见习  白天电脑没网  晚上网速十几K  csdn都登录不上  。 7.5-7.29暑期结束就回家了三天  看看奶奶  。然后8.3就又到学校了 ,看着15acm成员的集训。然后8.13号数学建模 的培训  培训到8.28号。就开学了。。又报了驾校  ...

2016-10-05 10:40:49

阅读数:1904

评论数:13

提示
确定要删除当前文章?
取消 删除
关闭
关闭