mirror of
https://github.com/zhenyan121/SporeBG-Conid.git
synced 2026-04-10 06:14:08 +08:00
feat: add player display label
This commit is contained in:
@@ -43,6 +43,8 @@ void GameScene::postHandleClick() {
|
|||||||
m_boardRenderer->updateMovementRange(m_gameSession->getSelectedPiece(), m_gameSession->getCurrentActionType());
|
m_boardRenderer->updateMovementRange(m_gameSession->getSelectedPiece(), m_gameSession->getCurrentActionType());
|
||||||
m_gameUIManager->updateGameState(m_gameSession->getGameState());
|
m_gameUIManager->updateGameState(m_gameSession->getGameState());
|
||||||
m_boardRenderer->setGameState(m_gameSession->getGameState());
|
m_boardRenderer->setGameState(m_gameSession->getGameState());
|
||||||
|
m_gameUIManager->updatePlayerTurn(m_gameSession->getCurrentPlayer());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameScene::handleBoardClick(int row, int col) {
|
void GameScene::handleBoardClick(int row, int col) {
|
||||||
|
|||||||
@@ -113,6 +113,18 @@ void GameUIManager::updateGameState(GameState state) {
|
|||||||
m_currentGameState = state;
|
m_currentGameState = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GameUIManager::updatePlayerTurn(PlayerID playerID) {
|
||||||
|
auto labelIt = m_labels.find(makeHash("PlayerLabel"));
|
||||||
|
if (labelIt != m_labels.end()) {
|
||||||
|
auto& label = labelIt->second;
|
||||||
|
if (playerID == PlayerID::P1) {
|
||||||
|
label->setText("Player 1's Turn");
|
||||||
|
} else if (playerID == PlayerID::P2) {
|
||||||
|
label->setText("Player 2's Turn");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GameUIManager::setupUIComponents() {
|
void GameUIManager::setupUIComponents() {
|
||||||
// 这里可以添加更多的UI组件初始化逻辑
|
// 这里可以添加更多的UI组件初始化逻辑
|
||||||
|
|
||||||
@@ -120,7 +132,7 @@ void GameUIManager::setupUIComponents() {
|
|||||||
"ActionButton",
|
"ActionButton",
|
||||||
"Please Choose",
|
"Please Choose",
|
||||||
20,
|
20,
|
||||||
20,
|
60,
|
||||||
[](){
|
[](){
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -156,7 +168,14 @@ void GameUIManager::setupUIComponents() {
|
|||||||
|
|
||||||
);
|
);
|
||||||
m_buttons.emplace(QuitButton->getNameHash(), std::move(QuitButton));
|
m_buttons.emplace(QuitButton->getNameHash(), std::move(QuitButton));
|
||||||
|
|
||||||
|
auto playerLabel = UIWidgetFactory::createStandardLabel(
|
||||||
|
"PlayerLabel",
|
||||||
|
"Player 1's Turn",
|
||||||
|
20,
|
||||||
|
20
|
||||||
|
);
|
||||||
|
m_labels.emplace(playerLabel->getNameHash(), std::move(playerLabel));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,3 +194,4 @@ bool GameUIManager::handleClick(int lx, int ly) {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ public:
|
|||||||
|
|
||||||
void updateGameState(GameState state);
|
void updateGameState(GameState state);
|
||||||
|
|
||||||
|
void updatePlayerTurn(PlayerID playerID);
|
||||||
|
|
||||||
bool handleClick(int logicalX, int logicalY);
|
bool handleClick(int logicalX, int logicalY);
|
||||||
protected:
|
protected:
|
||||||
std::function<void()> m_restartCallback;
|
std::function<void()> m_restartCallback;
|
||||||
|
|||||||
Reference in New Issue
Block a user