From 9890da4e06300947d7447f0ad7d0a03339924dea Mon Sep 17 00:00:00 2001 From: zv0n Date: Thu, 29 Oct 2020 18:01:38 +0100 Subject: [PATCH] TETRIS: add variable scores based on number of lines destroyed --- tetris/scenes.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tetris/scenes.cpp b/tetris/scenes.cpp index 6d4447b..ca272a1 100644 --- a/tetris/scenes.cpp +++ b/tetris/scenes.cpp @@ -419,11 +419,11 @@ void mainSceneInput( std::shared_ptr< SDLPP::Scene > scene, int base, std::vecto moveThem( scene, SDL_GetTicks() - base ); return; } + short lines = 0; for ( auto &colider : line_coliders ) { auto collisions = scene->getCollisions( *colider, { BRICK_ID } ); while ( collisions.size() == 10 ) { - g_score += 10; - g_update_score = true; + lines += 1; for ( auto &col : collisions ) { col->destroy(); } @@ -442,6 +442,24 @@ void mainSceneInput( std::shared_ptr< SDLPP::Scene > scene, int base, std::vecto collisions = scene->getCollisions( *colider, { BRICK_ID } ); } } + if(lines > 0) { + g_update_score = true; + switch(lines) { + case 1: + g_score += 40; + break; + case 2: + g_score += 100; + break; + case 3: + g_score += 300; + break; + case 4: + g_score += 1200; + default: + break; + } + } g_checked_line = true; }