⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tankgame611.java

📁 在实际的项目中运用类的继承、覆盖及重载。
💻 JAVA
字号:
package tankgame611;

import java.awt.*;
import java.awt.Image;
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.MediaTracker;

public class TankGame611 extends Applet {
       int myTankWidth,myTankHeight;
       int enemyTankWidth, enemyTankHeight;
       int myTankX,myTankY;
       int enemyTankX,enemyTankY;
       Image bufferImage;
       Image myTankImg[];
       Image enemyTankImg[];
       Graphics bufferGraphic;
       MediaTracker MT;
       PlayTankSprite myTankSprite;
       EnemyTankSprite enemyTankSprite;

  public void init() {
    MT=new MediaTracker(this);
    myTankImg=new Image[4];
    enemyTankImg=new Image[4];
    for(int i=0;i<4;i++){
      myTankImg[i]=getImage(getDocumentBase(),"pic/Tank"+i+".png");
      enemyTankImg[i]=getImage(getDocumentBase(),"pic/ETank"+i+".png");
      MT.addImage(myTankImg[i],0);
      MT.addImage(enemyTankImg[i],0);
    }
    try {
      MT.waitForAll();
    }
    catch(InterruptedException E) {
    }
    myTankWidth=myTankImg[0].getWidth(this);
    myTankHeight=myTankImg[0].getHeight(this);
    myTankX=(this.getWidth()-myTankWidth)/2;
    myTankY=(this.getHeight()-myTankHeight)/2;
    enemyTankWidth=enemyTankImg[0].getWidth(this);
    enemyTankHeight=enemyTankImg[0].getHeight(this);
    enemyTankX=this.getWidth()-enemyTankWidth;
    enemyTankY=enemyTankHeight;


    //建立缓冲画面
    bufferImage=this.createImage(this.getWidth(),this.getHeight());
    bufferGraphic=bufferImage.getGraphics();
    this.setFocusable(true);
    this.resize(this.getWidth(),this.getHeight());
    myTankSprite=new PlayTankSprite(myTankImg,myTankX,myTankY,this);
    enemyTankSprite=new EnemyTankSprite(enemyTankImg,enemyTankX,enemyTankY,this);
    enemyTankSprite.setTankDirection(0);
  }
  public void start(){
  myTankSprite.startRunning();
  enemyTankSprite.startRunning();
  }
  public void stop(){
  myTankSprite.stopRunning();
  enemyTankSprite.stopRunning();
}
public void paint(Graphics g){
  bufferGraphic.clearRect(0,0,this.getWidth(),this.getHeight());
  myTankSprite.drawSprite(bufferGraphic,myTankSprite.getTankDirection());
  enemyTankSprite.drawSprite(bufferGraphic, enemyTankSprite.getTankDirection());
  g.drawImage(bufferImage,0,0,this);
}
public void update(Graphics g){
  paint(g);
}
}
  //direction:0=左;1=右;2=上;3=下
/*  public void updatePos(int direction){
    //移动坦克//
    switch(direction){
      case 0:
        myTankX=myTankSprite.getX()-speed;
        //设定坦克的边界动作//
        if(myTankX<1)myTankX=1;
        break;
       case 1:
         myTankX=myTankSprite.getX()+speed;
         if(myTankX>AppletWidth-myTankWidth-1)
           myTankX=AppletWidth-myTankWidth-1;
           break;
        case 2:
          myTankY=myTankSprite.getY()-speed;
       //设定坦克的边界动作//
         if(myTankY<1)myTankY=1;
            break;
        case 3:
        myTankY=myTankSprite.getY()+speed;
        if(myTankY>AppletHeight-myTankHeight-1)
          myTankY=AppletHeight-myTankHeight-1;
          break;
    }
        //////设定坦克图像的正确位置/////
        myTankSprite.setPos(myTankX,myTankY);
  }
     ///////实现键盘事件控制的内部类/////
class keyAction extends KeyAdapter{
  public void keyPressed(KeyEvent e){
    if(e.getKeyCode()==e.VK_SPACE){
      //发射子弹//
    }
    if(e.getKeyCode()==e.VK_LEFT){
      myTankDirection=0;
      getActiveMyTank=true;
    }
    if(e.getKeyCode()==e.VK_RIGHT){
      myTankDirection=1;
      getActiveMyTank=true;
    }
    if(e.getKeyCode()==e.VK_UP){
      myTankDirection=2;
      getActiveMyTank=true;
    }
    if(e.getKeyCode()==e.VK_DOWN){
      myTankDirection=3;
      getActiveMyTank=true;
    }

   ///重绘图像///
    if(getActiveMyTank=true){
      updatePos(myTankDirection);
    }
     repaint();
  }
public void keyReleased(KeyEvent e){
      getActiveMyTank=false;
  }
  }
      */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -