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

📄 stagecanvas.java

📁 小游戏,MIDP2.0,非常不错的!请试用下!
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
          /*    System.out.println("this.isTogether()"+this.isTogether());
             for(int i=0;i<6;i++){
               System.out.println("spriteArray["+i+"].X" + spriteArray[i].X);
               System.out.println("spriteArray["+i+"].Y" + spriteArray[i].Y);
               System.out.println("spriteArray["+i+"].T" + spriteArray[i].T);
             }
             System.out.println("this.tI"+this.tI);
               System.out.println("spriteArray[this.tI].X"+spriteArray[this.tI].X);
               System.out.println("spriteArray[this.tI].Y"+spriteArray[this.tI].Y);
             System.out.println("this.tWhat"+this.tWhat);
             System.out.println("you lose!**********************************************************************");
                 //   CanoeingMIDlet.quitApp();
           */

        }
        else { //不撞时,初始化
          tempHitLife = 0;
        }

        if (this.fps == 2) {

          this.drawBackground(g);
          this.spriteArrayAdjust();
          for (int i = 1; i < 6; i++) {
            this.drawTypeImages(g, spriteArray[i].T, spriteArray[i].Y,
                                spriteArray[i].X, spriteArray[i].direction);
          }
          this.drawFrame(g); //绘制边框
          //System.out.println("midSpeed"+midSpeed);
          if (!isHit || tWhat == 3) { //如果真,就画船     ||  tWhat==1
            lowSpeed = 4; //0,6每次上升的像素
            midSpeed = 6; //1,5每次上升的像素
            midhighSpeed = 8; //1,5每次上升的像素
            highSpeed = 15; //每次上升的像素
            this.drawTypeImages(g, spriteArray[0].T, spriteArray[0].Y,
                                spriteArray[0].X, spriteArray[0].direction);
          }
          this.fps = 0;
        }
        else {
          this.fps++;
        }
        if (lifeValue == 0) { //结束游戏
          this.saveData();
          eng.gameState = eng.STATE_GAMEOVER;
        }
        this.isRepaint = true;
        break;

      case Engine.STATE_LOAD: /////////继续游戏
        this.isRepaint = false;

        //   this.drawLoadingScreen(g);
        break;

      case Engine.STATE_PAUSE:
        this.drawPause(g);

        break;

      case Engine.STATE_PLAYMENU: ////////////////play游戏中途菜单
        this.drawPlayMenuScreen(g); //游戏中菜单
        break;

      case Engine.STATE_GAMEOVER:
        StopWatchStartTime = this.resetStopWatch();
        /// this.resetStopWatch();

//System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"+this.eng.gameState);
        this.drawGameoverScreen(g);
        this.eng.gameState = this.eng.STATE_LOSE;
        this.isRepaint = true;
        break;

      case Engine.STATE_LOSE: //失败
        if (getStopWatchTime() < 2000) {
          eng.runnerSleep(2000); ///gameOver.png 停留2秒
        }
        else {
          this.drawLoseScreen(g);
        }
        this.isRepaint = true;

        // if (images[5] != null) { //释放资源
        //  images[5] = null;
        // }
        lifeValue = 10; //重新初始化
        break;

     case Engine.STATE_VOLUME: //声音
        this.isRepaint = false;
        //isSound=false;
        this.drawMusicSelectScreen(g);
        break;

    }
    //  if (g!=old)
    ///  old.drawImage(offScreen, 0, 0, this.ANCHOR0_LT);
  }

  //////////////////////////////////////////////////

  public int tWhat; //撞到哪个类型物体
  public int tI; //撞到哪个物体
//这里的1,2,3对应Sprite对象的T
  //0,人//1,鳄鱼//2,树//3,激流/4,漩涡//5,小石头//6,中石头//7,big石头

  final int sprite0high = 18; //船  22
  final int sprite0width = 18; //22
  final int sprite1high = 10; //
  final int sprite1width = 25; // 35 10
  final int sprite2high = 13; //
  final int sprite2width = 16; // 20 15
  final int sprite3high = 21; //
  final int sprite3width = 20; // 25 23
  final int sprite4high = 18; //
  final int sprite4width = 18; // 25 22
  final int sprite5high = 8; //
  final int sprite5width = 13; //18 11
  final int sprite6high = 9; //
  final int sprite6width = 14; //18 12
  final int sprite7high = 19; //
  final int sprite7width = 18; //22 23

  //int tt; //撞的类型
  int high = 0;
  int width = 0;

  public boolean isTogether() {

    for (int i = 1; i < 6; i++) {
      switch (spriteArray[i].T) {
        case 1:
          high = sprite1high;
          width = sprite1width;
          break;
        case 2:
          high = sprite2high;
          width = sprite2width;
          break;
        case 3:
          high = sprite3high;
          width = sprite3width;
          break;
        case 4:
          high = sprite4high;
          width = sprite4width;
          break;
        case 5:
          high = sprite5high;
          width = sprite5width;
          break;
        case 6:
          high = sprite6high;
          width = sprite6width;
          break;
        case 7:
          high = sprite7high;
          width = sprite7width;
          break;

      }
      //所有的创
      if ( ( ( (spriteArray[0].Y + sprite0width) >= spriteArray[i].Y &&
              spriteArray[0].Y <= spriteArray[i].Y)
            ||
            (spriteArray[0].Y <= (spriteArray[i].Y + width) &&
             spriteArray[0].Y >= spriteArray[i].Y))
          &&
          ( ( (spriteArray[0].X + sprite0high) >= spriteArray[i].X &&
             (spriteArray[0].X <= spriteArray[i].X)) ||
           (spriteArray[0].X <= (spriteArray[i].X + high) &&
            spriteArray[0].X >= spriteArray[i].X))) {
        this.tWhat = spriteArray[i].T;
        this.tI = i;
        //    System.out.println("" + this.tWhat);
        //  System.out.println("" + spriteArray[i].X + "      " + spriteArray[i].Y);
        return true;
      }

    }
    this.tI = 0;
    this.tWhat = 0;
    return false;
  }

////////////////////////////////////////////////

  //**************************************************************************************************

   public void spriteArrayInit() {
     int sumNextX = 176;//128; //累计纵坐标  128  RSQ

     spriteArray[0] = new Sprite();
     for (int i = 1; i < 6; i++) {
       spriteArray[i] = new Sprite(this.thisMaxScore);

       spriteArray[i].X = sumNextX;

       sumNextX = spriteArray[i].X + spriteArray[i].nextX;

     }
   }

  public void spriteArrayAdjust() {

    if (spriteArray[1].X < 10) { //物体消失

      //***********************************************************************
       //下 是记录得分
       //0,人//1,鳄鱼//2,树//3,激流/4,漩涡//5,小石头//6,中石头//7,
       if (spriteArray[1].T == 2 || spriteArray[1].T == 5 ||
           spriteArray[1].T == 6 || spriteArray[1].T == 7) {

         thisMaxScore += 5;

       }
      if (spriteArray[1].T == 4 || spriteArray[1].T == 3) {
        thisMaxScore += 10;

      }
      if (spriteArray[1].T == 1) {
        thisMaxScore += 15;

      }

      //*****************************************************************************8

       for (int i = 1; i < 5; i++) {
         spriteArray[i].X = spriteArray[i + 1].X;
         spriteArray[i].Y = spriteArray[i + 1].Y;
         spriteArray[i].T = spriteArray[i + 1].T;
         spriteArray[i].nextX = spriteArray[i + 1].nextX;

       }
      spriteArray[5] = null;
      spriteArray[5] = new Sprite(this.thisMaxScore);
      spriteArray[5].X = spriteArray[4].X + spriteArray[4].nextX;
    }
    switch (this.canKey) { //根据按键
      case 0: //无按键
        switch (spriteArray[0].direction) {
          case 0:

            /* */
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= lowSpeed;

            }
            if (spriteArray[0].Y >= 13) {
              spriteArray[0].Y -= xx;
            }

            break;
          case 6:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= lowSpeed;
            }
            if (spriteArray[0].Y <= 140) { //22   10
              spriteArray[0].Y += xx;

            }

            break;
          case 1:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= midSpeed;
            }
            if (spriteArray[0].Y >= 13) {
              spriteArray[0].Y -= xx;

            }

            break;
          case 2:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= midhighSpeed;
            }
            if (spriteArray[0].Y >= 13) {
              spriteArray[0].Y -= xx;
            }

            break;
          case 3:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= highSpeed;
            }

            break;
          case 4:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= midhighSpeed;
            }
            if (spriteArray[0].Y <= 140) {
              spriteArray[0].Y += xx;

            }

            break;
          case 5:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= midSpeed;
            }
            if (spriteArray[0].Y <= 140) {
              spriteArray[0].Y += xx;

            }

            break;

        }

        break;

      case 1: //左键
        if (spriteArray[0].direction != 0) {
          spriteArray[0].direction--;
        }
        switch (spriteArray[0].direction) {
          case 0:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= lowSpeed;
            }
            if (spriteArray[0].Y >= 13) { //1
              spriteArray[0].Y -= xx;

            }
            break;
          case 6:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= lowSpeed;
            }
            if (spriteArray[0].Y <= 93) { //127
              spriteArray[0].Y += xx;

            }
            break;
          case 1:
            for (int i = 1; i < 6; i++) {//6
              spriteArray[i].X -= midSpeed;
            }
            if (spriteArray[0].Y >= 13) { //2813
              spriteArray[0].Y -= xx;

            }

            break;
          case 2:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= midhighSpeed;
            }
            if (spriteArray[0].Y >= 13) { //13
              spriteArray[0].Y -= xx;

            }

            break;
          case 3:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= highSpeed;
            }

            break;
          case 4:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= midhighSpeed;
            }
            if (spriteArray[0].Y <= 93) {
              spriteArray[0].Y += xx;

            }

            break;
          case 5:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= midSpeed;
            }
            if (spriteArray[0].Y <= 93) {
              spriteArray[0].Y += xx;

            }

            break;

        }

        break;
      case 2: //右键
        if (spriteArray[0].direction != 6) {
          spriteArray[0].direction++;
        }
        switch (spriteArray[0].direction) {
          case 0:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= lowSpeed;
            }
            if (spriteArray[0].Y >= 13) {
              spriteArray[0].Y -= xx;

            }
            break;
          case 6:

           //   System.out.println("spriteArray[0].Y" + spriteArray[0].Y);
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= lowSpeed;
            }

            if (spriteArray[0].Y <= 140) { //110
              spriteArray[0].Y += xx;

            }
            break;
          case 1:
            for (int i = 1; i < 6; i++) {
              spriteArray[i].X -= midSpeed;
            }

⌨️ 快捷键说明

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