/** * 成功配对时的处理 * * @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(); } }