new next block

This commit is contained in:
2025-12-07 19:02:03 +01:00
parent a74d7135e6
commit 9d989ab395
9 changed files with 68 additions and 29 deletions

View File

@ -122,6 +122,9 @@ void GameRenderer::renderPlayingState(
FontAtlas* pixelFont,
LineEffect* lineEffect,
SDL_Texture* blocksTex,
SDL_Texture* statisticsPanelTex,
SDL_Texture* scorePanelTex,
SDL_Texture* nextPanelTex,
float logicalW,
float logicalH,
float logicalScale,
@ -242,8 +245,16 @@ void GameRenderer::renderPlayingState(
drawRectWithOffset(statsX - contentOffsetX, statsY - contentOffsetY, statsW, statsH, {30, 35, 50, 255});
// Draw next piece preview panel border
drawRectWithOffset(nextX - 3 - contentOffsetX, nextY - 3 - contentOffsetY, nextW + 6, nextH + 6, {100, 120, 200, 255});
drawRectWithOffset(nextX - contentOffsetX, nextY - contentOffsetY, nextW, nextH, {30, 35, 50, 255});
// If a NEXT panel texture was provided, draw it instead of the custom
// background/outline. The texture will be scaled to fit the panel area.
if (nextPanelTex) {
SDL_FRect dst{ nextX - contentOffsetX, nextY - contentOffsetY, nextW, nextH };
SDL_SetTextureBlendMode(nextPanelTex, SDL_BLENDMODE_BLEND);
SDL_RenderTexture(renderer, nextPanelTex, nullptr, &dst);
} else {
drawRectWithOffset(nextX - 3 - contentOffsetX, nextY - 3 - contentOffsetY, nextW + 6, nextH + 6, {100, 120, 200, 255});
drawRectWithOffset(nextX - contentOffsetX, nextY - contentOffsetY, nextW, nextH, {30, 35, 50, 255});
}
// Draw the game board
const auto &board = game->boardRef();
@ -306,7 +317,8 @@ void GameRenderer::renderPlayingState(
// Draw next piece preview
pixelFont->draw(renderer, nextX + 10, nextY - 20, "NEXT", 1.0f, {255, 220, 0, 255});
if (game->next().type < PIECE_COUNT) {
drawSmallPiece(renderer, blocksTex, static_cast<PieceType>(game->next().type), nextX + 10, nextY + 10, finalBlockSize * 0.6f);
// Nudge preview slightly upward to remove thin bottom artifact
drawSmallPiece(renderer, blocksTex, static_cast<PieceType>(game->next().type), nextX + 10, nextY + 5, finalBlockSize * 0.6f);
}
// Draw block statistics (left panel)