java项目之——坦克大战10

本文介绍了一款简单坦克游戏中的炮弹实现过程。通过创建导弹类Missile,并定义位置、方向等属性,实现炮弹的发射及移动效果。文中详细展示了构造方法、绘制方法以及移动逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现了坦克的移动,现在要实现坦克可以打出炮弹:

功能:添加子弹类,添加方法和参数。

1.位置和方向属性

 
 int x,y;
 Tank.Direction dir;

2.构造方法

public Missile(int x, int y,Tank.Direction dir) {
		this.x = x;
		this.y = y;
		this.dir=dir;
	}
    

3.画坦克的方法

public void draw(Graphics g){
		Color c = g.getColor();
		g.setColor(Color.BLACK);
		g.fillOval(x, y, 10, 10);
		g.setColor(c);
		
		move();
	}
4.move方法:

private void move(){
		switch(dir){
		case L: x -= XSPEED;break;
		case LU: x -= XSPEED; y -= XSPEED;break;
		case U: y -= XSPEED;break;
		case RU: x += XSPEED;y -= XSPEED;break;
		case R: x += XSPEED;break;
		case RD: x += XSPEED;y += XSPEED;break;
		case D: y += XSPEED;break;
		case LD: x -= XSPEED;y += XSPEED;break;
		   }	   
	   }

设置速度

  public static final int XSPEED =10;
  public static final int YSPEED =10;

5.测试:

在主类里面创建对象

    Tank myTank = new Tank(50, 50);
    Missile ms = new Missile(100, 100, Tank.Direction.RD);
    Image offScreenImage = null;
    
    public void paint(Graphics g) {
        ms.draw(g);
        myTank.draw(g);        
    }

附带子弹类的代码:

public class Missile {
    	
        public static final int XSPEED =10;
        public static final int YSPEED =10;
    	
        int x,y;
        Tank.Direction dir;
        
    
	public Missile(int x, int y,Tank.Direction dir) {
		this.x = x;
		this.y = y;
		this.dir=dir;
	}
    
	public void draw(Graphics g){
		Color c = g.getColor();
		g.setColor(Color.BLACK);
		g.fillOval(x, y, 10, 10);
		g.setColor(c);
		
		move();
	}
	
	private void move(){
		switch(dir){
		case L: x -= XSPEED;break;
		case LU: x -= XSPEED; y -= XSPEED;break;
		case U: y -= XSPEED;break;
		case RU: x += XSPEED;y -= XSPEED;break;
		case R: x += XSPEED;break;
		case RD: x += XSPEED;y += XSPEED;break;
		case D: y += XSPEED;break;
		case LD: x -= XSPEED;y += XSPEED;break;
		   }	   
	   }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值