关于坦克大战中坦克子弹颜色的问题

本文介绍了一款坦克游戏中子弹颜色与所属坦克不匹配的问题及解决方案。初始时,玩家坦克发射的子弹颜色错误地显示为敌方的颜色。通过调整绘图顺序,确保子弹在其所属坦克之后绘制,最终实现了子弹颜色与坦克颜色的一致。

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

因为开始设计坦克的时候玩家的坦克是黄色,电脑的坦克是蓝色,他们多对应的子弹颜色也应该是一致的,可是开始时候我的玩家的坦克是黄色的,打出来的子弹是蓝色的,代码如下:
public void paint(Graphics g) {
		super.paint(g);
		//设置图象的背景颜色
		g.fillRect(0, 0, 600, 400);
		//画出自己的坦克
		this.drawTank(hero.getX(), hero.getY(), g, hero.direct, 1);
		
		
		
		//画出敌人的坦克
		for (int i = 0; i < ets.size(); i++) {
			EnemyTank et = ets.get(i);
			this.drawTank(et.getX(), et.getY(), g, et.getDirect(), 0);
		}	
		//从ss中取出每颗子弹,并画出
		for (int i = 0; i < hero.ss.size(); i++) {
					
			Shot myShot = hero.ss.get(i);
					
			//画出一颗子弹
			if (myShot != null && myShot.isLive == true) {
				g.draw3DRect(myShot.x, myShot.y, 1, 1, false);
					
			}
					
			//删除符合条件的子弹
			if (myShot.isLive == false) {
				//从ss中删掉该子弹
				hero.ss.remove(myShot);
			}
		}
	}

后面发现我把自己坦克的子弹代码放在了敌方坦克代码的后面,导致己方坦克的黄色被敌方坦克的蓝色所覆盖,从而子弹变成了蓝色,修改后的代码如下

public void paint(Graphics g) {
		super.paint(g);
		//设置图象的背景颜色
		g.fillRect(0, 0, 600, 400);
		//画出自己的坦克
		this.drawTank(hero.getX(), hero.getY(), g, hero.direct, 1);
		
		//从ss中取出每颗子弹,并画出
		for (int i = 0; i < hero.ss.size(); i++) {
					
			Shot myShot = hero.ss.get(i);
					
			//画出一颗子弹
			if (myShot != null && myShot.isLive == true) {
				g.draw3DRect(myShot.x, myShot.y, 1, 1, false);
					
			}
					
			//删除符合条件的子弹
			if (myShot.isLive == false) {
				//从ss中删掉该子弹
				hero.ss.remove(myShot);
			}
		}
		
		//画出敌人的坦克
		for (int i = 0; i < ets.size(); i++) {
			EnemyTank et = ets.get(i);
			this.drawTank(et.getX(), et.getY(), g, et.getDirect(), 0);
		}	
	}


这样坦克的子弹就与坦克是同一个颜色了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值