最初版本,我的坦克Hero类只有一个炮弹Shot对象成员。Hero类:classHeroextendsTank{Shots=null;publicHero(intx,inty){super(x,y);}publicvoidshotEnemy(){switch(this.direct){case...
最初版本,我的坦克Hero类只有一个炮弹Shot对象成员。
Hero类:
class Hero extends Tank
{
Shot s=null;
public Hero(int x, int y)
{
super(x,y);
}
public void shotEnemy()
{
switch(this.direct)
{
case 0:
s=new Shot(x+10,y ,0);
break;
case 1:
s=new Shot(x+30,y+10, 1);
break;
............
}
//创建线程并启动
Thread t=new Thread(s);
t.start();
}
在监听事件处理函数中:
if(e.getKeyCode()==KeyEvent.VK_J)
{
//判断玩家是否按下J键
this.hero.shotEnemy();
}
//重新绘制窗口
this.repaint();
我对如果每次按J键的话,是怎么处理的?每次按J键都new一个s?那原先new出来的s对象哪去了?Hero只有一个Shot对象,按J键后都是执行s=new Shot(x+30,y+10, 1);我对这个表示不解,这是为什么?
展开