摆棋阶段对最近移除的棋子置为选择状态

This commit is contained in:
CalciteM Team 2019-06-29 11:21:48 +08:00
parent a7f5f0a173
commit dd164595a0
1 changed files with 11 additions and 0 deletions

View File

@ -867,10 +867,13 @@ bool GameController::updateScence(NineChess &chess)
// 棋子就位 // 棋子就位
PieceItem *piece = nullptr; PieceItem *piece = nullptr;
PieceItem *deletedPiece = nullptr;
for (int i = 0; i < nTotalPieces; i++) { for (int i = 0; i < nTotalPieces; i++) {
piece = pieceList.at(i); piece = pieceList.at(i);
piece->setSelected(false);
// 将pieceList的下标转换为chess的棋子代号 // 将pieceList的下标转换为chess的棋子代号
key = (i % 2) ? (i / 2 + 0x21) : (i / 2 + 0x11); key = (i % 2) ? (i / 2 + 0x21) : (i / 2 + 0x11);
@ -912,6 +915,9 @@ bool GameController::updateScence(NineChess &chess)
} }
if (piece->pos() != pos) { if (piece->pos() != pos) {
// 为了对最近移除的棋子置为选择状态作准备
deletedPiece = piece;
#ifdef GAME_PLACING_SHOW_CAPTURED_PIECES #ifdef GAME_PLACING_SHOW_CAPTURED_PIECES
if (chess.getStage() == NineChess::GAME_MOVING) { if (chess.getStage() == NineChess::GAME_MOVING) {
#endif #endif
@ -968,6 +974,11 @@ bool GameController::updateScence(NineChess &chess)
} }
} }
// 对最近移除的棋子置为选择状态
if (deletedPiece) {
deletedPiece->setSelected(true);
}
animationGroup->start(QAbstractAnimation::DeleteWhenStopped); animationGroup->start(QAbstractAnimation::DeleteWhenStopped);
return true; return true;