mirror of
https://github.com/zhenyan121/SporeBG-Conid.git
synced 2026-04-10 14:24:10 +08:00
Added GameOver Scene
This commit is contained in:
@@ -198,3 +198,29 @@ BoardArea BoardRenderer::getBoardArea() const {
|
||||
};
|
||||
}
|
||||
|
||||
void BoardRenderer::setGameState(GameState state) {
|
||||
m_gameState = state;
|
||||
}
|
||||
|
||||
void BoardRenderer::renderBlackOverlay() {
|
||||
if (!m_renderer) return;
|
||||
if (m_gameState == GameState::GAME_RUNING) return;
|
||||
// 开启混合模式(重要!)
|
||||
SDL_SetRenderDrawBlendMode(m_renderer, SDL_BLENDMODE_BLEND);
|
||||
|
||||
// 设置黑色半透明颜色
|
||||
SDL_SetRenderDrawColor(m_renderer, 0, 0, 0, 150); // 半透明黑色
|
||||
|
||||
// 绘制覆盖整个屏幕的矩形
|
||||
SDL_FRect rect{
|
||||
0.0f,
|
||||
0.0f,
|
||||
static_cast<float>(m_Width),
|
||||
static_cast<float>(m_Height)
|
||||
};
|
||||
|
||||
SDL_RenderFillRect(m_renderer, &rect);
|
||||
|
||||
// 恢复原来的混合模式
|
||||
SDL_SetRenderDrawBlendMode(m_renderer, SDL_BLENDMODE_NONE);
|
||||
}
|
||||
@@ -31,6 +31,9 @@ private:
|
||||
float m_pieceRadiusRatio = 0.8f; // 棋子半径相对于格子大小的比例
|
||||
PlayerColors m_colors;
|
||||
std::unordered_set<int> m_currentDrawRange;
|
||||
|
||||
GameState m_gameState = GameState::GAME_RUNING;
|
||||
|
||||
public:
|
||||
BoardRenderer(int WIDTH, int HEIGHT, SDL_Renderer* renderer);
|
||||
|
||||
@@ -55,6 +58,9 @@ public:
|
||||
void drawMovementRange();
|
||||
BoardArea getBoardArea() const;
|
||||
|
||||
void setGameState(GameState state);
|
||||
|
||||
void renderBlackOverlay();
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user