Java大作业报告(截止5月20日)
@Override
public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub }
//本游戏用到这个方法,就来处理这个方法,其他的先不管
//键按下
//W表示向上,A表示向左,S表示向下,D表示向右 public void keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_W){ //设置我的坦克的方向 this.hero.setDirect(0); if(this.hero.y>0){ this.hero.moveUp(); }
}else if(e.getKeyCode()==KeyEvent.VK_D){ //向右
this.hero.setDirect(1); if(this.hero.x<370){
Java大作业报告(截止5月20日)
this.hero.moveRiget(); }
}else if(e.getKeyCode()==KeyEvent.VK_S){ //向下
this.hero.setDirect(2); if(this.hero.y<270){ this.hero.moveDown(); }
}else if(e.getKeyCode()==KeyEvent.VK_A){ //向左
this.hero.setDirect(3); if(this.hero.x>0){ this.hero.moveLeft(); } }
//判断是否玩家按下j开火
if(e.getKeyCode()==KeyEvent.VK_J){ //开火
//if语句控制屏幕上同时最多只有多少颗子弹
Java大作业报告(截止5月20日)
if(this.hero.ss.size()<5){ this.hero.shotEnemy(); } }
this.repaint(); }
@Override
public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub }
@Override
public void run() {
// TODO Auto-generated method stub while(true){ try {
Thread.sleep(100); } catch (Exception e) { // TODO: handle exception
Java大作业报告(截止5月20日)
}
//调用判断我的子弹是否击中敌人的函数 this.hitEnemyTank();
//调用判断敌人子弹是否击中我的函数 this.hitMe(); //判断是否要加子弹
for(int i = 0 ;i if(et.ss.size()<1){ Shot s =null; switch(et.direct){ case 0: s = new Shot(et.x+10, et.y,0); et.ss.add(s); break; case 1: s = new Shot(et.x+30, et.y+10,1); et.ss.add(s); break; case 2: Java大作业报告(截止5月20日) s = new Shot(et.x+10, et.y+30,2); et.ss.add(s); break; case 3: s = new Shot(et.x, et.y+10,3); et.ss.add(s); break; } //启动子弹线程 Thread t = new Thread(s); t.start(); } } } //重绘 this.repaint(); } } } **********************************************