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

📄 player.java

📁 一款运行于手机的Java游戏神灯传奇源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        delayAssistantShoot1 = 10;
        break;
      case 5:
        delayAssistantShoot2 = 10;
        super.bHitPower = 20;
        break;
      }
      break;
    case 2:
      super.bSpeed = 12;
      super.bWidth = 5;
      super.bHeight = 5;
      super.bDelayShoot = 4;
      switch (level) {
      case 1:
        super.bHitPower = 8;
        break;
      case 2:
        super.bHitPower = 10;
        break;
      case 3:
        super.bHitPower = 15;
        break;
      case 4:
        super.bHitPower = 10;
        delayAssistantShoot1 = 10;
        break;
      case 5:
        delayAssistantShoot2 = 10;
        super.bHitPower = 20;
        break;
      }
      break;
    case 3:
      super.bSpeed = 12;
      super.bWidth = 5;
      super.bHeight = 5;
      super.bDelayShoot = 3;
      switch (level) {
      case 1:
        super.bHitPower = 10;
        break;
      case 2:
        super.bHitPower = 20;
        break;
      case 3:
        super.bHitPower = 30;
        break;
      case 4:
        super.bHitPower = 10;
        delayAssistantShoot1 = 10;
        break;
      case 5:
        delayAssistantShoot2 = 10;
        super.bHitPower = 20;
        break;
      }
      break;
    }
  }

  /**
   * 如果玩家设置为不可见,即为无敌状态
   *
   * @return
   */
  public boolean isInvisible() {
    return delayInitial > 0 || isBombState;
  }

  /**
   * 获得玩家的速度
   *
   * @return
   */
  public int getSpeed() {
    return super.speedX;
  }

  /**
   * 设置玩家的速度
   *
   * @param newSpeed
   */
  public void setSpeed(int newSpeed) {
    super.speedX = newSpeed;
    super.speedY = newSpeed;
  }


  /**
   * 增加分数
   */
  public void addScore(int amount) { // 增加分数
    int lastScore = score;
    score += amount;
    if (score / 2000 - lastScore / 2000 == 1) {
      life++;
    }
  }

  /**
   * 获得当前的分数
   *
   * @return
   */
  public int getScore() {
    return score;
  }
  /**
   * 增加当前的血
   */
  public void addEnergy(int addenergy) {
    int lastEnergy = energy;
    energy += addenergy;
    if (lastEnergy >= MAX_ENERGY)
      energy = MAX_ENERGY;
  }
  /**
   * 设置当前的分数
   *
   * @param newScore
   */
  public void setScore(int newScore) {
    score = newScore;
  }

  /**
   * 获得灵弹点数
   *
   * @return
   */
  public int getBombPoint() {
    return bombPoint;
  }

  /**
   * 增加灵弹点数
   *
   */
  public void addBombPoint() {
    bombPoint++;
    if (bombPoint == 30) {
      bombPoint = 0;
      bombNum++; //产生灵弹
    }
  }

  /**
   * 获得灵弹数
   *
   * @return
   */
  public int getBombNum() {
    return bombNum;
  }

  /**
   * 增加灵弹数
   *
   */
  public void addBomb() {
    bombNum++;
  }

  /**
   * 向上按键
   *
   */
  public void keyUp() {
    if (isDead() || delayInitial > 28) {
      return;
    } else {
      moveY(-super.speedY);
      return;
    }
  }

  /**
   * 向下按键
   *
   */
  public void keyDown() {
    if (isDead() || delayInitial > 28) {
      return;
    } else {
      moveY(super.speedY);
      return;
    }
  }

  /**
   * 向左按键
   *
   */
  public void keyLeft() {
    if (isDead() || delayInitial > 28) {
      return;
    } else {
      if (!isBombState) {
        super.currentFrame = 1;
      }
      moveX(-super.speedX);
      return;
    }
  }

  public void keyRight() {
    if (isDead() || delayInitial > 28) {
      return;
    } else {
      if (!isBombState) {
        super.currentFrame = 2;
      }
      moveX(super.speedX);
      return;
    }
  }

  public void changeAuto() {
    isAutoFire = !isAutoFire;
  }

  public void releaseFire() {
    if (!isBombState && !isDestroy())
      super.currentFrame = 1;
  }

  public void fire() {
//		int posX = super.curLoc.getX();
//		int posY = super.curLoc.getY();
    if (isDead() || delayInitial > 28)
      return;
    if (!isBombState) {
      if (super.delayShoot <= 0) {
        super.delayShoot = super.bDelayShoot;
        fireBullet(PlayScreen.getBulletPool(), super.gunId, super.bHitPower,
                   bSpeed, 0, super.getLocationX() + super.getWidth() / 2,
                   super.getLocationY() - 3, super.bWidth, super.bHeight);
      }
      if (delayAssistantShoot1 <= 0) {
        switch (type) {
        case HUMAN:
          delayAssistantShoot1 = 10;
          if (gunLevel == 3 || gunLevel == 4) {
            //TODO:辅助弹1

          }
          break;
        }
      }
      if (delayAssistantShoot2 <= 0) {
        if (type == HUMAN && gunLevel == 4) {
          delayAssistantShoot2 = 10;
          //TODO:辅助弹2

        }
      }
    } else {
      if (delayBomb != 0) {
        if (delayBomb % bombFrequence == 0) {
          //灵弹的爆炸处理
          switch (type) {
          case HUMAN:
            break;
          case 2: //角色2
          case 3: //角色3
          case 4: //角色4
          }
        }
      } else {
        isBombState = false;
        super.currentFrame = 1;
      }
    }
  }

  public void moveX(int moveoffset)
  {
    int temp = super.curLoc.getX() + getWidth() / 2 + moveoffset;
    if (temp < ThreadCanvas.SCREEN_WIDTH && temp > 0)
      super.moveX(moveoffset);
  }

  public void moveY(int moveoffset) {
    int temp = super.curLoc.getY() + getHeight() / 2 + moveoffset;
    if (temp < ThreadCanvas.SCREEN_HEIGHT - 5 && temp > 15)
      super.moveY(moveoffset);
  }

  /**
   * 绘制玩家图片
   * @param g
   */
  public void render(Graphics g) {
    int posX = super.curLoc.getX() - BOUND_OFFSETX;
    int posY = super.curLoc.getY() - BOUND_OFFSETY;
    if (isInvisible()) {
      //playerImageSet.draw(g, super.currentState, 0, posX, posY);
      playerImageSet.draw(g, 0, 0, posX, posY);
      delayShieldFlash++;
      if (delayShieldFlash >= 3) {
        delayShieldFlash = 0;
        //外部光环
        //playerImageSet.draw(g, super.currentState, 3, posX, posY);
        playerImageSet.draw(g, 0, 3, posX, posY);
      }
      if (isBombState) { //释放炸弹的图片效果
        if (num <= bombImageSet.getTotalFrames(0) * 3) {
          //#if NOK_7370 || MOT_E2
          //# if(Control.currentPlayer == 3){
            //# bombImageSet.draw(g,0,num/3,95,90);
          //# }else{
            //# bombImageSet.draw(g,0,num/3,55,90);
          //# }
          //#else
          if(Control.currentPlayer == 3){
            bombImageSet.draw(g,0,num/3,60,30);
          }else{
            bombImageSet.draw(g,0,num/3,20,30);
          }
          //#endif
          num++;
          if(num>=12)num = 0;
//					//#if NOK_QD
//					//# if(num>=6)num = 6;
//					//#else
//					if(num>=18)num = 18;
//					//#endif
        }
      }
    } else {
      if (num >= 18) num = 0;
//      System.out.println("num = " + num);
//      playerImageSet.draw(g, super.currentState, num / 2, posX, posY);
      playerImageSet.draw(g, 0, num / 2, posX, posY);
      num++;
      if (num >= 6) num = 0;
    }
    if (isDestroy()) {
      if (super.curExpAniId < explodeImageSet.getTotalFrames(0)) {
        explodeImageSet.draw(g, 0, super.curExpAniId, posX, posY);
        super.curExpAniId++;
      } else {
        if (currentFrame != 3) {
          currentFrame = 3;
          setSpeedY(5);
        } else {
          int temp = super.curLoc.getY() + getHeight() / 2;
          if (temp >= PlayScreen.PLAY_END_Y){
            dead();
          }
        }
      }
    }
  }

  /**
   * 点燃灵弹
   *
   */
  public void fireBomb() {
    if (!isDestroy() && !isBombState && bombNum > 0) {
      super.curExpAniId=0;
      super.currentFrame = 2;
      isBombState = true;
      bombNum--;
      delayBomb = 60;
      bombFrequence = 3;
    }
  }

  public void strong() {
    if (!isDestroy() && !isBombState && bombNum > 0) {
      super.currentFrame = 2;
      delayBomb = 10;
    }
  }
}

⌨️ 快捷键说明

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