01_坦克大战案例演示
* 略
1. 创建游戏窗体
2. 绘制地图(阻碍物,坦克)
3. 坦克可以移动,也可以发射子弹
4. 碰撞(坦克和阻碍物的碰撞,子弹和阻碍物的碰撞,子弹和子弹碰撞)
02_准备工作之新建工作空间
* 步骤
* 1.新建一个工作空间.
* 2.把工作空间的字符编码改为: UTF-8.
* 3.对工作空间进行基本设置.
* 显示行号
* 更改字体大小.
* 注意:
* 坦克大战案例要求大家使用的JDK版本必须是JDK1.8(或更高版本).
03_准备工作之非抽象方法里面可以调用抽象方法
04_坦克大战案例之坦克隐藏到草坪中
* a. 先绘制坦克,在绘制草坪(扩展性不强,不推荐).
* b. 采用Comparator比较器接口的方式, 对集合中的元素按照渲染层级进行排序.
* 渲染层级越高,元素的顺序越靠后(Element#getOrder()).
* 此处用CopyOnWriteArrayList集合实现.
05_坦克大战案例之坦克和砖墙的碰撞检测
* 步骤
a. MyTank#checkHit(Steel steel); 在该方法中完成功能代码.
定义两个成员变量用于记录当前坦克不能移动的方向(badDirection)和碰撞的最小间隙(badSpeed),
获取铁墙的坐标以及宽高, 同时获取当前坦克的坐标和宽高,
预判坦克的下一步动作, 然后调用CollisionUtils#isCollisionWithRect();进行碰撞检测, 并用flag记录返回结果,
判断flag的值, 如果为true,就将当前方向赋值给badDirection