【坦克大战】
scx_white
这个作者很懒,什么都没留下…
展开
-
TankWar 单机(JAVA版)版本2.0.5 坦克撞墙的处理
首先附上运行结果:从图中可以看完无论是我的坦克 还是敌方坦克都不能通过石头墙 土墙 水池。可以通过灌木丛道理和子弹击中坦克一样。获取地图的矩形位置,坦克的矩形位置,判断两个矩形是否相交。如果相交再根据地形是否为灌木丛等,让坦克回到移动前的位置。首先在wall类中求出各种地形的宽和高public void setWidthAndHeight(Image img) {原创 2016-10-09 19:59:09 · 3416 阅读 · 0 评论 -
TankWar 单机(JAVA版) 版本1.6 将敌人坦克击毙
可以看看ppt的步骤。其实思路也是很简单把坦克 和子弹都看作一个矩形 Rectangle 然后使用 Rectangle类中的碰撞检测方法A.intersects(B) 如果返回值为true就表示矩形A和矩形B相交,即碰撞。既然有了思路 那么就要一点一点解决问题。首先要获得子弹的矩形对象和坦克的矩形对象分别在子弹类中和坦克类中新增一个getRec方法public Rectan原创 2016-10-07 13:05:16 · 2115 阅读 · 0 评论 -
TankWar 单机(JAVA版) 版本1.5 画一辆敌方的坦克
既然是敌方坦克 肯定和我方坦克有区别 那么就在Tank类中定义一个布尔型的good变量用来区分敌我坦克,同时将good变量放入构造方法。public Tank(int x, int y, int width, int height,boolean good) { super(); this.x = x; this.y = y; this.width = width;原创 2016-10-07 11:25:13 · 2036 阅读 · 0 评论 -
TankWar 单机(JAVA版) 版本0.4~版本0.6 让坦克动起来
版本0.4的项目要求是让坦克动起来 由于在版本0.6也是让坦克听从我们指挥 等会再写在这里主要是建立一个屏幕刷新线程 使屏幕达到时时刷新的效果代码如下:public class updateThread extends Thread{ @Override public void run() { // TODO Auto-generated method stub原创 2016-10-05 12:47:05 · 2397 阅读 · 0 评论 -
TankWar单机 (JAVA版) 目录
早就想写了 一直都在忙 暑期去了无锡一个月见习 白天电脑没网 晚上网速十几K csdn都登录不上 。7.5-7.29暑期结束就回家了三天 看看奶奶 。然后8.3就又到学校了 ,看着15acm成员的集训。然后8.13号数学建模的培训 培训到8.28号。就开学了。。又报了驾校 我的天。。。浑浑噩噩就到今天了 唉从今天起要改变这一个月来的状态了。于是决定写一下坦克大原创 2016-10-05 10:40:49 · 2319 阅读 · 9 评论 -
TankWar 单机(JAVA版)版本2.3~版本2.4 为坦克画血条
运行结果:为了在坦克上方画血条 。血条首先要有坐标x,y 宽和高width和height血量的多少life也要有。所以新建类Life要有这些参数Life类如下:package tankWar;import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import jav原创 2016-10-14 14:38:48 · 3592 阅读 · 1 评论 -
TankWar 单机(JAVA版)版本2.2 超级炮弹
既然我们能够实现一个方向的发子弹,那么根据同样的道理 也能够实现八个方向的发子弹。首先在Tank类的KeyPress方法里面加上按键A的事件 // 我方坦克的键盘按下事件 public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub switch (e.getKeyCode()) { case原创 2016-10-14 14:10:35 · 1868 阅读 · 0 评论 -
TankWar 单机(JAVA版)版本1.9 敌军坦克自动移动 自动攻击 及判断边界
按照项目来吧首先是让敌军坦克动起来 ,要想让敌军坦克动起来 要明白我方坦克是怎么动的呢?你会说按上下左右键 ,仔细想想怎么让敌军坦克模拟按了上下左右键?我们按上下左右键主要是让给坦克一个方向,不停按就会移动 也就是步数。概括可以得到 只要给坦克步数和方向就能实现自动移动了。获得随机方向:首先定义一个变量 //随机数 private Random r=new Rando原创 2016-10-08 17:52:01 · 3685 阅读 · 1 评论 -
TankWar 单机(JAVA版)版本1.7&&版本1.8 坦克死亡的爆炸和画出多个敌方坦克
首先看版本1.8 添加多辆坦克。还记得在前面版本1.5中我们用了一个集合用来保存敌方坦克吗?用处就是在这里了 修改addEnemyTanks方法 循环多次 就能创建多个坦克了比如加入八个敌方坦克// 向集合中添加敌方坦克 private void addEnemyTanks() { // TODO Auto-generated method stub for(原创 2016-10-07 20:13:56 · 2312 阅读 · 0 评论 -
TankWar 单机(JAVA版) 版本1.0~版本1.4 坦克方向打出多发子弹 并解决子弹不消亡问题
首先新建一个子弹类由于要画子弹,所以变量肯定要有坐标x,y,宽高width,height.方法要有draw方法用来绘制子弹而子弹移动还有子弹的方向dir.子弹的移动速度speed。要判断子弹是否消亡 所以还要布尔变量bLive表示当前子弹的存亡状态所有变量的Get set方法一定要有哦。只有这些 你会发现子弹是不会动的 只会停留在原地 要怎么才能让子弹动呢?就是线程,原创 2016-10-06 20:09:12 · 2317 阅读 · 0 评论 -
TankWar 单机(JAVA版) 版本0.7~版本0.9 让坦克实现八个方向的移动
运行结果:版本0.7的项目要求是将坦克单独封装为一个类 在前面我们一直就是按照把坦克封装承类实现的。所以这里就不再写了。然后就是版本0.8了 控制坦克八个方向移动。首先说一下思路:我们可以设置四个方向的boolean变量 然后根据键盘事件 来判断你按了哪个键来使对应方向的booelan值设置为true然后根据方向的boolean值来判断方向,最后根据方向来移动原创 2016-10-06 13:17:11 · 2820 阅读 · 0 评论 -
TankWar 单机(JAVA版)优化炮杆和坦克移动方向不一致
在上篇文章中我们发现炮杆方向和移动方向不一致 如图:那么要怎么优化呢?也就是在画炮杆时根据当前坦克的方向画。所以需要一个枚举变量Direction来监视当前坦克的方向新建一个枚举变量:package tankWar;public enum Direction { U,D,L,R,STOP}然后在Tank类中 新增一个curDir 默认当前坦克方向向上原创 2016-10-05 13:22:20 · 2204 阅读 · 0 评论 -
TankWar 单机(JAVA版) 版本0.3 画出坦克
其实就是通过自定义的panel 重写里面的paint方法 使用Graphics类画一个圆然后把自定的panel添加到窗口中由于想到tank不能只画一个 所以我们封装一个tank类 里面有一个draw方法 用来画 坦克通过实例化tank 调用draw方法就能实现画tank了原创 2016-10-05 12:05:37 · 2118 阅读 · 0 评论 -
TankWar 单机(JAVA版)版本2.0.1 在地图中加入墙体
在地图中加入障碍物,首先说说我的思路。我把整个panel看作一个二维的数组,然后为这个二维数组赋不同的值。二维数组的值表示我们地图所需的土墙 石头墙 灌木丛 水池等。在加载地图时我们遍历地图集合,画出地图。首先新建了一个Wall类package tankWar;import java.awt.Graphics;import java.awt.Image;import原创 2016-10-08 23:04:03 · 2211 阅读 · 2 评论 -
TankWar 单机(JAVA版) 版本0.1&&版本0.2 显示一个窗口
上面是项目要求 继承JFrame 就能实现一个窗口了没有什么好解释的 具体看代码注释package tankWar;import javax.swing.JFrame;public class TankClient extends JFrame{ //窗口的高度 public static int screenHeight=600; //窗口的宽度 public s原创 2016-10-05 11:00:37 · 1857 阅读 · 0 评论 -
TankWar 单机(JAVA版) 提前优化 图形化
有人给我说画的坦克太难看了 本来我是打算在最后在用图片的既然这样 那么在后面我们就使用图片吧所有图片都在源代码里面 请自己下载 在最下面到目前我们用到图片的地方只有子弹,敌方坦克和我方坦克的八个方向 在这里我们使用ToolKit工具箱里面的getImage方法来读取本地图片 当然ImageIO也行 自己选择首先tank类实例化一个ToolKi原创 2016-10-07 13:46:16 · 1969 阅读 · 0 评论