java编写坦克大战

这是一款使用Java编程的坦克大战游戏,采用面向对象设计,融入多线程和GUI技术。游戏中,玩家操作粉色坦克,通过wsad键移动和j键发射子弹,子弹有速度限制和发射间隔。敌方坦克速度与玩家相近,会随机移动和射击。游戏设有开始关卡界面,玩家可通过左上角游戏按钮选择重新开始或新游戏。目前游戏仅完成第一关,期待有兴趣的开发者进一步完善。
摘要由CSDN通过智能技术生成

微信公众号: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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值