坦克大战—day 11

为了使敌方的坦克有简单的AI功能,那么必须将tank类结构进行重构。

父类:Tank,子类:MyTank,EnemyTank.

package tank;

import java.awt.*;

public class MyTank extends Tank{
    private static Image[] tankImg;
    static {
        tankImg = new Image[4];
        tankImg[0]=Toolkit.getDefaultToolkit().createImage("res/u.png");
        tankImg[1]=Toolkit.getDefaultToolkit().createImage("res/d.png");
        tankImg[2]=Toolkit.getDefaultToolkit().createImage("res/l.png");
        tankImg[3]=Toolkit.getDefaultToolkit().createImage("res/r.png");
    }
    public MyTank(int x, int y, int dir) {
        super(x, y, dir);
    }

    @Override
    public void drawImgTank(Graphics g) {
        g.drawImage(tankImg[getDir()],getX()-RADIUS,getY()-RADIUS,null );
    }

}

 

package tank;

import game.GameFrame;
import util.Constant;
import util.MyUtil;

import java.awt.*;

public class EnemyTank extends Tank{
    private  static Image[] enemyImg;
    static {
        enemyImg = new Image[4];
        enemyImg[0]=Toolkit.getDefaultToolkit().createImage("res/ul.png");
        enemyImg[1]=Toolkit.getDefaultToolkit().createImage("res/dl.png");
        enemyImg[2]=Toolkit.getDefaultToolkit().createImage("res/ll.png");
        enemyImg[3]=Toolkit.getDefaultToolkit().createImage("res/rl.png");
    }
    public EnemyTank(int x, int y, int dir) {
        super(x, y, dir);
    }

    @Override
    public void drawImgTank(Graphics g) {
        g.drawImage(enemyImg[getDir()],getX()-RADIUS,getY()-RADIUS,null );
    }
    public static Tank createEnemy(){
        int x= MyUtil.getRandomNumber(0,2)==0?RADIUS:
                Constant.FRAME_WIDTH-RADIUS;
        int y= GameFrame.titleBarh+RADIUS;
        int dir=DIR_DOWN;

        Tank enemy=new EnemyTank(x,y,dir);
        enemy.setEnemy(true);
        enemy.setState(STATE_MOVE);
        return enemy;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值