亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tankgame611.java

?? 1) 在實踐中理解游戲地圖的含義 2) 地圖的編輯制作 3) 地圖數據的運用 4) 地圖的碰撞檢測
?? JAVA
字號:
package tankgame611;

import java.awt.MediaTracker;
import java.awt.Image;
import java.applet.*;
import java.applet.Applet;
import java.awt.Graphics;
import java.util.Random;
public class TankGame611 extends Applet {
  public final int StateBarWidth=100;
  final int EnemyNum=3;
  int myTankWidth, myTankHeight;
  int enemyTankWidth,enemyTankHeight;
  int enemyTankX,enemyTankY;
  int myTankX, myTankY;
  int destroyEnemyNum=0;
  Image myTankSrcImg;
  Image enemyTankSrcImg;
  Image shellSrcImg;
  Image bufferImage;
  Image bckImage;
  Image myTankImg[];
  Image enemyTankImg[];
  Graphics bufferGraphic;
  MediaTracker MT;
  PlayTankSprite myTankSprite;
  EnemyTankSprite[] enemyTank;
  TankThread threadTank;
  ShellSprite MyShell;
  ShellSprite[] enemyShell;
  public Image shellImg[];
  Explosion explosion;
  Image explosionImg[];
  Image explosionSrcImg;
  private AudioClip explAudio,bkMusicAudio,gameOverAudio;
  Random rand;
  private int killEnemyNum=0;
  private int leftEnemyNum=9;
  private int LifeBlood=100;
  private int GameScores=0;
  private boolean isGameOver=false;
  private DrawMap drawGameMap;
  private Image TileSrcImg;
  public static final int TILE_WIDTH=32;
  public static final int TILE_HEIGHT=32;
  public static final int TILE_ROWS=1;
  public static final int TILE_COLS=5;
  public static final int MAP_ROWS=18;
  public static final int MAP_COLS=22;
  public void init() {
    MT = new MediaTracker(this);
    myTankImg = new Image[4];
    enemyTankImg = new Image[4];
    shellImg = new Image[2];
    bkMusicAudio = getAudioClip(getDocumentBase(), "audio/Music.mid");
    explAudio = getAudioClip(getDocumentBase(), "audio/Explosion.wav");
    gameOverAudio = getAudioClip(getDocumentBase(), "audio/GameOver.wav");
    explosionSrcImg = getImage(getDocumentBase(), "pic/explosion.gif");
    myTankSrcImg = getImage(getDocumentBase(), "pic/Tank.png");
    enemyTankSrcImg = getImage(getDocumentBase(), "pic/ETank.png");
    shellSrcImg = getImage(getDocumentBase(), "pic/Shell.png");
    TileSrcImg=getImage(getDocumentBase(),"pic/walls.png");
    MT.addImage(explosionSrcImg, 0);
    MT.addImage(myTankSrcImg, 0);
    MT.addImage(enemyTankSrcImg, 0);
    MT.addImage(shellSrcImg, 0);
    MT.addImage(TileSrcImg,0);
    try {
      MT.waitForAll();
    }
    catch (InterruptedException E) {}
      explosionImg = GetClipImage.getImages(explosionSrcImg, 8, 34, 33);
      myTankImg = GetClipImage.getImages(myTankSrcImg, 4, 45, 45);
      enemyTankImg = GetClipImage.getImages(enemyTankSrcImg, 4, 45, 45);
      shellImg = GetClipImage.getImages(shellSrcImg, 2, 10, 10);
      myTankWidth = myTankSrcImg.getWidth(this) / 4;
      myTankHeight = myTankSrcImg.getHeight(this);
      enemyTankWidth = enemyTankSrcImg.getWidth(this) / 4;
      enemyTankHeight = enemyTankSrcImg.getHeight(this);
      myTankX = TILE_WIDTH*7;
      myTankY = this.getHeight() - myTankHeight-1;
      bufferImage = this.createImage(this.getWidth(), this.getHeight());
      bufferGraphic = bufferImage.getGraphics();
      this.setFocusable(true);
      this.resize(this.getWidth(), this.getHeight());
      rand = new Random();
      explosion = new Explosion(explosionImg, this);
      MyShell=new ShellSprite(shellImg[0], 0, 20, explosion,this);
      MyShell.setSize(shellSrcImg.getWidth(this) / 2,
                             shellSrcImg.getHeight(this) / 2);

      myTankSprite = new PlayTankSprite(myTankImg, myTankX, myTankY, MyShell, this);
      myTankSprite.setSize(myTankWidth,myTankHeight);
      myTankSprite.setLocation(myTankX, myTankY);
      enemyTank = new EnemyTankSprite[EnemyNum];
      enemyShell = new ShellSprite[EnemyNum];
      createNewEnemyTank();
      drawGameMap=new DrawMap(this,TileSrcImg,TILE_WIDTH,TILE_HEIGHT,TILE_ROWS,TILE_COLS,MAP_ROWS,MAP_COLS);
    }
    public void start() {
      threadTank = new TankThread(this, myTankSprite, enemyTank, MyShell,
                                  enemyShell, explosion);
      threadTank.start();
    }
    public void stop() {
      threadTank = null;
    }
    public void createNewEnemyTank() {
      for (int i = 0; i < EnemyNum; i++) {
        int a=i;
        if(a>=3)a=0;
        switch(a){
          case 0:
            enemyTankX=1;
            enemyTankY=1;
            break;
          case 1:
            enemyTankX=this.getWidth()-DrawGameState.StatusBarWidth-enemyTankWidth-1;
            enemyTankY=1;
            break;
          case 2:
            enemyTankX=(this.getWidth()-enemyTankWidth)/2;
            enemyTankY=1;
            }
        enemyShell[i] = new ShellSprite(shellImg[1], 0, 4,explosion,this);
        enemyShell[i].setSize(shellSrcImg.getWidth(this) / 2,
                                     shellSrcImg.getHeight(this) / 2);
        enemyShell[i].setVisible(true);
        enemyShell[i].setMove(true);
        enemyTank[i] = new EnemyTankSprite(enemyTankImg, enemyTankX, enemyTankY,
                                           enemyShell[i], this);
        enemyTank[i].setSize(enemyTankWidth, enemyTankHeight);
        enemyTank[i].setTankDirection(rand.nextInt(12) % 4);
        enemyTank[i].setVisible(true);
        enemyTank[i].setMove(true);
      }
    }
    public void recreateEnemyTank() {
      if (killEnemyNum == EnemyNum) {
        killEnemyNum = 0;
        createNewEnemyTank();
      }
    }
    public void paint(Graphics g) {
      if (isGameOver == false) {
        bufferGraphic.clearRect(0, 0, this.getWidth(), this.getHeight());
        drawGameMap.PaintMaps(bufferGraphic);
        recreateEnemyTank();
        for (int i = 0; i < EnemyNum; i++) {
          if (enemyTank[i].visible == true) {
            enemyTank[i].paintSprite(bufferGraphic, enemyTank[i].getTankDirection());
            enemyShell[i].paintSprite(bufferGraphic);
            int k = rand.nextInt(10000);
            int d = rand.nextInt(12) % 4;
            if (k % 2 != 0 && k < 100) {
              enemyTank[i].setTankDirection(d);
            }
            if (myTankSprite.isCollided(enemyTank[i])) {
              setExplosionPosition(enemyTank[i]);
              explosion.setVisible(true);
              enemyTank[i].setMove(false);
              enemyTank[i].setVisible(false);
              killEnemyNum = killEnemyNum + 1;
            }
            if (MyShell.isCollided(enemyTank[i])) {
              setExplosionPosition(enemyTank[i]);
              explosion.setVisible(true);
              enemyTank[i].setMove(false);
              enemyTank[i].setVisible(false);
              MyShell.setMove(false);
              MyShell.setVisible(false);
              killEnemyNum = killEnemyNum + 1;
              leftEnemyNum = leftEnemyNum - 1;
              GameScores = GameScores + 100;
            }
            if (enemyShell[i].isCollided(myTankSprite)) {
              setExplosionPosition(myTankSprite);
              explosion.setVisible(true);
              LifeBlood = LifeBlood - 5;
            }
          }
        }
        myTankSprite.paintSprite(bufferGraphic, myTankSprite.getTankDirection());
        explosion.drawSprite(bufferGraphic);
        MyShell.paintSprite(bufferGraphic);
        DrawGameState.drawStatus(bufferGraphic, LifeBlood, leftEnemyNum,
                                 enemyTankImg[0], GameScores, this);
        g.drawImage(bufferImage, 0, 0, this);
      }
      if (LifeBlood <= 0) {
        drawGameMap.PaintMaps(bufferGraphic);
        DrawGameState.drawGameMessage(bufferGraphic, "Game Over", this.getWidth(),
                                      this.getHeight());
        isGameOver = true;
        gameOverAudio.play();
        g.drawImage(bufferImage, 0, 0, this);
      }
      if (leftEnemyNum == 0) {
        drawGameMap.PaintMaps(bufferGraphic);
        DrawGameState.drawGameMessage(bufferGraphic, "You Win!", this.getWidth(),
                                      this.getHeight());
        isGameOver = true;
        g.drawImage(bufferImage, 0, 0, this);
      }
    }
      public void setExplosionPosition(AbstractSprite sprite) {
        int dir = 0;
        if (sprite instanceof EnemyTankSprite) {
          dir = ( (EnemyTankSprite) sprite).getTankDirection();
        }
        if (sprite instanceof PlayTankSprite) {
          dir = ( (PlayTankSprite) sprite).getTankDirection();
        }
        switch (dir) {
          case 0:
          case 1:
            explosion.setLocation(sprite.getX() + sprite.getWidth() / 2,
                             sprite.getY() + sprite.getHeight() / 2);
            break;
          case 2:
          case 3:
            explosion.setLocation(sprite.getX() + sprite.getHeight() / 2,
                             sprite.getY() + sprite.getWidth() / 2);
        }
      }
      public void update(Graphics g) {
        paint(g);
      }
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人xxxx| 国产精品嫩草影院av蜜臀| 日韩欧美一级二级| 国产三级久久久| 亚洲国产精品久久一线不卡| 久久97超碰色| 色综合天天做天天爱| 日韩免费观看高清完整版| 中文字幕欧美区| 视频一区在线播放| k8久久久一区二区三区 | 成人免费视频视频| 欧美电影在线免费观看| 国产精品久久影院| 免费成人结看片| 在线观看国产一区二区| 国产欧美日本一区视频| 日韩成人一区二区| 91亚洲永久精品| 精品成人一区二区三区四区| 亚洲国产精品嫩草影院| av不卡一区二区三区| 国产欧美一区二区精品性色超碰| 丝袜亚洲另类欧美综合| 日本高清无吗v一区| 国产日韩精品视频一区| 国内精品伊人久久久久影院对白| 欧美亚州韩日在线看免费版国语版| 国产欧美视频一区二区| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩成人一区| 亚洲国产成人精品视频| 91在线porny国产在线看| 中文字幕+乱码+中文字幕一区| 久久福利视频一区二区| 91麻豆精品91久久久久同性| 一区二区国产视频| av中文字幕一区| 欧美国产日韩精品免费观看| 国产尤物一区二区在线| 日韩精品中午字幕| 蜜臀a∨国产成人精品| 欧美美女喷水视频| 午夜电影一区二区三区| 欧美日韩一区二区三区在线看 | 99re66热这里只有精品3直播| 久久久久成人黄色影片| 国产精品一区在线| 久久久久国色av免费看影院| 久久99这里只有精品| 欧美电影免费观看高清完整版| 蜜桃免费网站一区二区三区| 欧美日本高清视频在线观看| 性欧美大战久久久久久久久| 这里只有精品免费| 久久成人18免费观看| 久久亚洲综合色| 大尺度一区二区| 国产精品盗摄一区二区三区| 色噜噜狠狠一区二区三区果冻| 亚洲午夜激情网站| 5566中文字幕一区二区电影 | 国产精品久线在线观看| 色综合久久88色综合天天免费| 亚洲天堂成人在线观看| 欧美日韩一区二区在线观看| 天天操天天色综合| 欧美日韩一区二区三区四区五区 | 欧美日韩国产高清一区二区 | av中文字幕不卡| 一区二区三区欧美日| 日韩视频在线永久播放| 成人性生交大片| 亚洲成人资源在线| 日韩欧美综合一区| 99精品黄色片免费大全| 性做久久久久久久久| 精品999久久久| av中文字幕一区| 毛片不卡一区二区| 国产精品久99| 精品国精品自拍自在线| 91色在线porny| 美女视频黄 久久| 中文字幕第一页久久| 欧美精品免费视频| 不卡的av电影在线观看| 亚洲福利电影网| 国产清纯白嫩初高生在线观看91| 色噜噜狠狠成人中文综合| 国产精品亚洲专一区二区三区| 亚洲午夜成aⅴ人片| 久久午夜羞羞影院免费观看| 欧美日韩综合在线| 99久久精品99国产精品 | 亚洲国产精品久久人人爱| 国产亚洲欧美中文| 欧美系列日韩一区| 成人aa视频在线观看| 蜜臂av日日欢夜夜爽一区| 成人欧美一区二区三区| 国产日本亚洲高清| 9191精品国产综合久久久久久| 国产很黄免费观看久久| 日韩中文字幕一区二区三区| 国产精品欧美一级免费| 国产三级一区二区三区| 日韩欧美区一区二| 91精品国产综合久久久久久久久久 | 亚洲乱码国产乱码精品精小说 | 日本一区中文字幕| 亚洲精品综合在线| 久久久99久久精品欧美| 欧美精品第1页| 欧美亚洲图片小说| 91丨porny丨国产| 成人久久视频在线观看| 国产精品一线二线三线精华| 免费在线看一区| 午夜不卡在线视频| 一区二区免费在线| 亚洲国产欧美另类丝袜| 亚洲成人综合在线| 亚洲第一搞黄网站| 日韩不卡手机在线v区| 丝袜a∨在线一区二区三区不卡| 午夜精品影院在线观看| 日韩有码一区二区三区| 狂野欧美性猛交blacked| 久久成人免费网站| 国产麻豆日韩欧美久久| 成人免费视频视频| 日本韩国精品在线| 69堂成人精品免费视频| 欧美mv日韩mv| 国产视频在线观看一区二区三区| 国产色产综合产在线视频| 国产精品三级av| 一级日本不卡的影视| 亚洲电影你懂得| 捆绑变态av一区二区三区| 国产福利一区二区三区在线视频| 丁香婷婷深情五月亚洲| 一本大道久久a久久综合| 国产校园另类小说区| 欧美国产亚洲另类动漫| 亚洲一区二区在线观看视频| 日av在线不卡| 成人在线综合网站| 欧美日韩国产高清一区| 精品理论电影在线| 欧美国产国产综合| 亚洲一区二区美女| 国内精品国产成人国产三级粉色| 国产91清纯白嫩初高中在线观看 | 色欲综合视频天天天| 欧美一区欧美二区| 欧美国产综合色视频| 亚洲成人免费观看| 国产二区国产一区在线观看 | 国产一区免费电影| 99久久99久久免费精品蜜臀| 在线成人av网站| 中文幕一区二区三区久久蜜桃| 一级精品视频在线观看宜春院 | 亚洲色图视频网| 视频一区在线视频| www.欧美日韩| 欧美哺乳videos| 亚洲自拍都市欧美小说| 国产精品一区二区不卡| 日本二三区不卡| 国产亚洲欧美激情| 免费在线观看视频一区| 91在线国内视频| 国产婷婷色一区二区三区| 午夜av区久久| 93久久精品日日躁夜夜躁欧美| 日韩视频123| 亚洲成人免费视| 91老师片黄在线观看| 久久先锋影音av鲁色资源| 日本aⅴ亚洲精品中文乱码| 91首页免费视频| 中文字幕一区三区| 国产黄色成人av| 久久综合九色综合97_久久久| 天天综合色天天综合| 欧美亚洲丝袜传媒另类| 亚洲色图欧美偷拍| aa级大片欧美| 日本一区二区高清| 国产呦萝稀缺另类资源| 日韩精品中文字幕一区二区三区| 亚洲成人综合视频| 欧美精选在线播放| 亚洲丶国产丶欧美一区二区三区| 在线免费观看视频一区| 亚洲色欲色欲www在线观看| 99麻豆久久久国产精品免费 |