コード例 #1
0
ファイル: Game.java プロジェクト: Hounge/AndroidLinkup
  /**
   * 成功配对时的处理
   *
   * @param linkInfo 连接路径信息
   * @param prePiece 前一个卡片信息
   * @param curPiece 当前卡片信息
   */
  private void handleSuccess(LinkInfo linkInfo, Piece prePiece, Piece curPiece) {
    unCheck();
    Piece[][] pieces = gameService.getPieces();
    if (prePiece.isStar()) {
      gameStar++;
      if (listener != null) {
        listener.onStarChanged(gameStar);
      }
    }
    if (curPiece.isStar()) {
      gameStar++;
      if (listener != null) {
        listener.onStarChanged(gameStar);
      }
    }
    // pieces[prePiece.getIndexY()][prePiece.getIndexX()].setEmpty(true);
    // pieces[curPiece.getIndexY()][curPiece.getIndexX()].setEmpty(true);
    pieces[prePiece.getIndexY()][prePiece.getIndexX()].setImageId(GameSettings.GroundCardValue);
    pieces[curPiece.getIndexY()][curPiece.getIndexX()].setImageId(GameSettings.GroundCardValue);
    onLinkPath(linkInfo);

    if (alignContext != null) {
      alignContext.Translate(prePiece, curPiece);
      if (listener != null) {
        listener.onTranslate();
      }
    }
    gameStep++;
    if (listener != null) {
      listener.onStepChanged(gameStep);
    }
    if (listener != null) {
      listener.onErase();
    }
    // 如果收集了足够的星星,游戏胜利
    if (levelCfg.getStars() != 0 && gameStar == levelCfg.getStars()) {
      gameStatus.win();
    }
    // 如果没有了游戏块,游戏胜利
    if (!gameService.hasPieces()) {
      gameStatus.win();
    }
  }