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

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

?? shotmanager.java

?? 手機J2ME開發的CS游戲的Demo
?? JAVA
字號:


import javax.microedition.m3g.*;


public class ShotManager
{
  // max value for the fired shot counter
  private static final int FIRED_SHOT_MAX = 2;

  private World scene;
  private MobileGunCamera mobCam;

  private AnimBillboard exploBoard;   // the animated explosions billboard
  private ShotSounds shotSounds;   
        // manages the fired shot and explosions sounds

  // Counter to control how long the fired shot image is displayed
  private int firedShotCounter = 0; 

  private int hitTerreristID = -1;   // ID of last penguin hit 


  public ShotManager(World s, MobileGunCamera mc)
  {
    scene = s;
    mobCam = mc;

    // set up animated explosions billboard
    System.out.println("Adding explosion billboard");
    Image2D[] ims = loadImages("/explo/explo", 6);
    Group camGroup = mobCam.getCameraGroup();
    exploBoard = new AnimBillboard(ims, camGroup, 1.5f);
    scene.addChild( exploBoard.getAnimBillboardMesh() );

    // initialise sound resources for shooting
    shotSounds = new ShotSounds();
  }  // end of ShotManager()


  public void update()
  /* Update the explosion display, and decrement the fired shot
     counter. When the fired shot counter reaches 0,
     make the image invisible. */
  { 
    exploBoard.update(); 

    if (firedShotCounter == 0)     // decide whether to hide the fired shot image
      mobCam.setShotVisible(false);   // hide it
    else
      firedShotCounter--;   // keep counting down
  } // end of update()


  // ---------------image loading -----------------------------


  private Image2D[] loadImages(String path, int num)
  // load files called path + 0-(num-1) + ".gif"
  {
    Image2D[] ims = new Image2D[num];
    for (int i=0; i<num; i++)
      ims[i] = loadImage(path + i + ".gif");
    return ims;
  }  // end of loadImages()


  private Image2D loadImage(String fn)
  // load the image stored in fn
  { Image2D im = null;
    try {
       im = (Image2D)Loader.load(fn)[0];
    }
    catch (Exception e)
    { System.out.println("Cannot make image from " + fn); }
    return im;
  }  // end of loadImage()



  // ------------------- shoot the gun -----------------

  public int shootGun()
  /* Fire the gun, and show an explosion if the ray hits something.
     Play a fired shot sound and an explosion sound.
     Remove the penguin if it's been hit.
     Return the ID of the hit penguin (or -1).
  */
  {
    // show fired shot image and play a sound
    firedShotCounter = FIRED_SHOT_MAX;
    mobCam.setShotVisible(true);
    shotSounds.playShotSound();

    // fire a picking ray out in the camera's forward direction
    RayIntersection ri = new RayIntersection();
    float[] camPos = mobCam.getPosition();   // camera's current position
    float[] camDir = mobCam.getDirection();  // camera's current fwd direction

    if (scene.pick(-1, camPos[0], camPos[1], camPos[2],
                       camDir[0], camDir[1], camDir[2], ri)) {   // hit something?
      float distance = ri.getDistance();  // normalized distance to the hit thing

      checkHit(ri);

      // calculate the coords of the hit thing
      float x = camPos[0] + (camDir[0] * distance);
      float y = camPos[1] + (camDir[1] * distance);
      float z = camPos[2] + (camDir[2] * distance);

      // show explosion at (x,y,z) and play a sound
      exploBoard.setPosition(x,y,z);
      exploBoard.setVisible(true); 
      shotSounds.playExplosionSound();
    }
    return hitTerreristID;
  }  // end of shootGun()


  private void checkHit(RayIntersection ri)
  // find out what's been hit
  {
     hitTerreristID = -1;   // reset to default value
     Node selected = ri.getIntersected();
     if (selected instanceof Mesh) {
       // System.out.println("Hit a mesh");
       Mesh m = (Mesh) selected;
       TerreristInfo tInfo = (TerreristInfo) m.getUserObject();
       if (tInfo != null) {
         hitTerreristID = tInfo.getID();  // save ID
         hitTerrerist(tInfo, m);
       }
     }
  } // end of checkHit()


  private void hitTerrerist(TerreristInfo tInfo, Mesh m)
  // make the shot penguin disappear if he's dead
  {
  	tInfo.loseALife();
    int numLives = tInfo.getNumLives();  // since just shot
    if (numLives == 0) {    // last life just gone
      System.out.println("Killed " + tInfo.getName() + 
                       "; ID: " + hitTerreristID);
   //   m.setRenderingEnable(false);
      m.setPickingEnable(false);
    }
    else {
      System.out.println("Hit " + tInfo.getName() + 
                       "; ID: " + hitTerreristID +
                       "; lives left: " + numLives);
      
    }
  }  // end of hitTerrerist()



  public boolean hitMade()
  // a hit has occurred if the explosion is visible
  {  return exploBoard.isVisible();  }


  public int getHitID()
  // get the ID of the last penguin hit, or -1
  {  return hitTerreristID; }


  // ------------------ sound ops ---------------------


  public void closeSounds()
  { shotSounds.closeSounds();  }

}  // end of ShotManager class

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩你懂的在线播放| 久久精品国产久精国产| 色综合天天综合| 日本一区二区三区国色天香 | 三级在线观看一区二区| 欧洲一区在线观看| 亚洲精品乱码久久久久久日本蜜臀| 麻豆精品一二三| 精品国产乱码久久久久久牛牛 | 韩国精品主播一区二区在线观看| 日韩女优av电影| 成人小视频在线| 亚洲欧美福利一区二区| 91婷婷韩国欧美一区二区| 亚洲成在人线免费| 欧美一区二区黄色| 东方aⅴ免费观看久久av| 最新成人av在线| 日本精品一区二区三区四区的功能| 亚洲国产日韩a在线播放| 色婷婷激情久久| 日韩av电影免费观看高清完整版 | 亚洲国产精品t66y| 国产精品99久久久| 亚洲一区二区三区三| 337p亚洲精品色噜噜| 国产成都精品91一区二区三| 国产精品色呦呦| 欧美私模裸体表演在线观看| 久久精品噜噜噜成人88aⅴ| 久久丝袜美腿综合| 国产a视频精品免费观看| 一区二区三区四区av| 制服丝袜av成人在线看| 97久久人人超碰| 日韩精品一二三四| 国产三级精品视频| 色噜噜偷拍精品综合在线| 青青青爽久久午夜综合久久午夜| 国产精品乱人伦| 337p亚洲精品色噜噜噜| 精品一区二区三区蜜桃| 亚洲日本免费电影| 日韩一级片在线观看| 91免费观看国产| 麻豆91精品91久久久的内涵| 中文字幕精品在线不卡| 欧美精品777| 成人国产视频在线观看| 美女高潮久久久| 亚洲色图另类专区| 91国偷自产一区二区三区成为亚洲经典 | 激情偷乱视频一区二区三区| 中文字幕一区二区三区在线观看| 2023国产精品自拍| 欧美在线观看视频一区二区 | 日本最新不卡在线| 中文子幕无线码一区tr| 精品剧情v国产在线观看在线| 91影院在线免费观看| 蜜臀久久99精品久久久久久9| 亚洲尤物视频在线| 中文字幕精品综合| 国产精品女同互慰在线看| 日韩一区二区在线观看| 欧美xxxxxxxx| 欧美日韩精品一区二区三区四区| 成人午夜免费电影| 国产精品69久久久久水密桃| 午夜在线电影亚洲一区| 国产亚洲精久久久久久| 精品国产欧美一区二区| 555夜色666亚洲国产免| 在线成人午夜影院| 欧美在线观看一区| 99国内精品久久| 黑人精品欧美一区二区蜜桃| 国产成人精品影院| 91黄视频在线观看| 99久久久免费精品国产一区二区| 美女网站视频久久| 美日韩一区二区三区| 五月综合激情婷婷六月色窝| 亚洲人吸女人奶水| 亚洲三级在线播放| 国产精品嫩草影院av蜜臀| 亚洲色图清纯唯美| 亚洲精品美腿丝袜| 午夜私人影院久久久久| 亚洲午夜一区二区三区| 中文字幕不卡的av| 亚洲一区在线视频观看| 一区二区三区产品免费精品久久75| 亚洲欧美怡红院| 亚洲丝袜另类动漫二区| 亚洲精品国产第一综合99久久| 亚洲免费毛片网站| 一区二区三区在线观看视频 | 精品成a人在线观看| 91麻豆精品国产91久久久| 精品人伦一区二区色婷婷| 国产精品私房写真福利视频| 亚洲人成亚洲人成在线观看图片 | 亚洲大片精品永久免费| 日韩av中文字幕一区二区三区 | 国产欧美一区在线| 国产精品久久免费看| 久久综合九色综合97_久久久| 国产精品成人免费在线| 亚洲乱码一区二区三区在线观看| 亚洲成av人在线观看| 日韩黄色免费网站| 日韩综合在线视频| 成人动漫一区二区| 色视频一区二区| 欧美成人国产一区二区| 国产午夜精品一区二区三区视频 | 国产色91在线| 26uuu亚洲综合色| 亚洲视频一二三区| 午夜精品视频一区| hitomi一区二区三区精品| 日本高清免费不卡视频| 欧美精品九九99久久| 久久―日本道色综合久久| 中文字幕在线不卡国产视频| 日韩影院免费视频| 丁香激情综合五月| 制服.丝袜.亚洲.另类.中文| 亚洲国产岛国毛片在线| 亚洲视频你懂的| 欧美午夜影院一区| 欧美精品一区二区三区在线| 亚洲精品日产精品乱码不卡| 久久99精品久久久久久久久久久久| 91网站最新地址| 欧美大片一区二区三区| 亚洲精品国产成人久久av盗摄| 国产成人综合自拍| 欧美日韩国产首页| 亚洲精品免费在线播放| 国产剧情在线观看一区二区| 制服丝袜激情欧洲亚洲| 最新不卡av在线| 国内精品伊人久久久久影院对白| 欧美另类久久久品| 国产精品久久免费看| 国产69精品久久久久777| 欧美日韩aaaaa| 亚洲国产视频一区二区| 成人丝袜高跟foot| 制服丝袜国产精品| 午夜精品久久久久影视| 国产99精品国产| 精品国产免费久久| 婷婷丁香久久五月婷婷| 欧美日韩久久久一区| 国产精品网曝门| 亚洲欧美一区二区三区久本道91| 国产精品自拍在线| 日韩情涩欧美日韩视频| 日本不卡123| 欧美视频一区二区| 亚洲一区二区综合| 91色porny| 久久久精品tv| 成人精品视频一区| 久久久久久久久久久99999| 国内精品伊人久久久久影院对白| 欧美另类久久久品| 奇米影视一区二区三区| 欧美日韩美女一区二区| 亚洲精品一卡二卡| 欧美日韩中文字幕一区二区| 亚洲天堂成人在线观看| 在线免费一区三区| 亚洲精品视频免费看| 欧洲一区二区av| 亚洲国产wwwccc36天堂| 欧美日本在线视频| 午夜私人影院久久久久| 欧美在线不卡视频| 日韩**一区毛片| 91精品国产手机| 国产成人午夜高潮毛片| 久久亚洲一区二区三区明星换脸| 成人综合婷婷国产精品久久免费| 久久蜜臀精品av| av网站免费线看精品| 亚洲免费观看高清完整版在线观看| 国精品**一区二区三区在线蜜桃| 国产亚洲一本大道中文在线| 国产精品综合二区| 亚洲精品中文字幕在线观看| 色琪琪一区二区三区亚洲区| 亚洲bt欧美bt精品| 欧美电影免费提供在线观看| 亚洲电影在线免费观看| 精品国产凹凸成av人网站| 国产精品 欧美精品|