java编写坦克大战

微信公众号:Java成长录

感兴趣可以关注下哦,Java知识点,学习路线规划,Java相关电子书,一起学习呀!。

简介:纯java面向对象编程,用到多线程,GUI,异常处理

1.我方坦克粉色,敌方坦克黄色
2.wsad 上下左右运动,j发射子弹。
3.子弹匀速发射,控制子弹数量一次最多不能超过10个,子弹发射有间隔,追求真实感
4.敌方坦克与我方坦克速度基本一致,并且敌方坦克随机发射子弹,随机运动
5.开始关卡界面
6.点击左上角游戏按钮选择重新开始,新游戏按钮

没有全部完成,只写了第一关新游戏和重新开始,希望感兴趣的小伙伴能继续写下去!

package tanke;//坦克类(包括子弹)

import java.util.Vector;

import org.omg.CORBA.INTERNAL;
import org.omg.CORBA.PUBLIC_MEMBER;

public class TK {
	int x=0,y=0,fngxiang=0,sudu=4,leixing=0;
	Boolean shengming=true;
	Vector<drtk> dftk = new Vector<drtk>();
	public int getFngxaing() {
		return fngxiang;
	}
	public void setFngxaing(int fngxiang) {
		this.fngxiang = fngxiang;
	}
	public int getSudu() {
		return sudu;
	}
	public void setSudu(int sudu) {
		this.sudu = sudu;
	}
	public int getLeixing() {
		return leixing;
	}
	public void setLeixing(int leixing) {
		this.leixing = leixing;
	}
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	public void setY(int y) {
		this.y = y;
	}
	public TK(int x,int y) {
		this.x = x;
		this.y = y;
	}
}
class wotk extends TK{
	Vector<zidan> zdVector = new Vector<zidan>(); 
	
	zidan zd = null;
	
	public wotk(int x,int y) {
		super(x, y);
	}
	public void xs() {
		if (y>0) {
			y-=sudu;
		}	
	}
	public void xx() {
		if (y<545) {
			y+=sudu;
		}

	}
	public void xz() {
		if (x>0) {
			x-=sudu;
		}

	}
	public void xy() {
		if (x<560) {
			x+=sudu;
		}

	}
	public void fszd() {

		switch (this.fngxiang) {
		case 0:
			zd = new zidan(x+20,y-10,0);
			zdVector.add(zd);
			break;
		case 1:
			zd = new zidan(x+20,y+50,1);
			zdVector.add(zd);
			break;
		case 2:
			zd = new zidan(x-10,y+20,2);
			zdVector.add(zd);
			break;
		case 3:
			zd = new zidan(x+50,y+20,3);
			zdVector.add(zd);
			break;
		default:
			break;
		}
		Thread zdThread = new Thread(zd);
		zdThread.start();
	}
}

class drtk extends TK implements Runnable{
	int sudu = 3;
	int time = 0;
	int fangxiang;
	Vector<zidan> dfzdvVector = new Vector<zidan>();
	public void dtjhl(Vector<drtk> dftk) {
		this.dftk = dftk;
	}
	public drtk(int x,int y) {
		super(x, y);
	}
	
	public boolean hxpz() {	
		boolean b=false;
		switch (this.fangxiang) {
		case 0:
		for (int i = 0; i < dftk.size(); i++) {
			drtk dt = dftk.get(i);
			if (dt!=this) {
				if (dt.fangxiang==0||dt.fangxiang==1||dt.fangxiang==2||dt.fangxiang==3){
					if (dt
  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值