diff --git a/tetris/custom_classes.cpp b/tetris/custom_classes.cpp index 305d588..0f0def5 100644 --- a/tetris/custom_classes.cpp +++ b/tetris/custom_classes.cpp @@ -2,7 +2,10 @@ std::shared_ptr< SDLPP::Texture > TetrisBlock::block_texture = nullptr; #ifdef FEATURE -const std::vector blockanim = {{0,0,125,125}, {125,0,250,125}, {125,125,250,250}, {0,125,125,250}}; +const std::vector< SDL_Rect > blockanim = { { 0, 0, 125, 125 }, + { 125, 0, 250, 125 }, + { 125, 125, 250, 250 }, + { 0, 125, 125, 250 } }; #endif TetrisBlock::TetrisBlock( double x, double y, double w, double h, @@ -19,13 +22,13 @@ TetrisBlock::TetrisBlock( double x, double y, double w, double h, if ( TetrisBlock::block_texture == nullptr ) { TetrisBlock::block_texture = std::make_shared< SDLPP::Texture >( renderer, "block.png" ); - TetrisBlock::block_texture->setAlpha(240); + TetrisBlock::block_texture->setAlpha( 240 ); } if ( g_show_3d ) #ifdef FEATURE setTexture( TetrisBlock::block_texture, 0, 0, 125, 125 ); setAnimationFrames( blockanim ); - setAnimationSpeed(4); + setAnimationSpeed( 4 ); #else setTexture( TetrisBlock::block_texture ); #endif @@ -154,20 +157,18 @@ void TetrisPiece::rotate() { auto &positions = pieces_rel_position[i]; auto piece_position = piece->getPos(); original_pos[i] = piece_position; - piece_position += { positions[0] * BLOCK_SIZE - - positions[1] * BLOCK_SIZE, - positions[2] * BLOCK_SIZE - - positions[3] * BLOCK_SIZE }; + piece_position += + { positions[0] * BLOCK_SIZE - positions[1] * BLOCK_SIZE, + positions[2] * BLOCK_SIZE - positions[3] * BLOCK_SIZE }; auto bottom = positions[3]; auto top = positions[2]; positions[3] = positions[1]; positions[2] = positions[0]; positions[1] = top; positions[0] = bottom; - piece_position += { positions[1] * BLOCK_SIZE - - positions[0] * BLOCK_SIZE, - positions[3] * BLOCK_SIZE - - positions[2] * BLOCK_SIZE }; + piece_position += + { positions[1] * BLOCK_SIZE - positions[0] * BLOCK_SIZE, + positions[3] * BLOCK_SIZE - positions[2] * BLOCK_SIZE }; piece->setPos( piece_position ); } } @@ -207,11 +208,11 @@ void TetrisPiece::setPos( const std::pair< double, double > &pos ) { setPos( pos.first, pos.second ); } -void TetrisPiece::setPos( const SDLPP::Vec2D &vec ) { +void TetrisPiece::setPos( const SDLPP::Vec2D< double > &vec ) { setPos( vec.getX(), vec.getY() ); } -SDLPP::Vec2D TetrisPiece::getPos() { +SDLPP::Vec2D< double > TetrisPiece::getPos() { auto &piece = pieces[0]; auto &relpositions = pieces_rel_position[0]; auto pos = piece->getPos(); @@ -260,7 +261,7 @@ bool TetrisPiece::isRight( const SDLPP::RenderObject &block ) const { void TetrisPiece::movePiece( double x, double y ) { for ( auto &block : getObjects() ) { auto pos = block->getPos(); - block->setPos( pos + SDLPP::Vec2D( x, y ) ); + block->setPos( pos + SDLPP::Vec2D< double >( x, y ) ); } } diff --git a/tetris/custom_classes.hpp b/tetris/custom_classes.hpp index 1e29a2d..17a733c 100644 --- a/tetris/custom_classes.hpp +++ b/tetris/custom_classes.hpp @@ -40,8 +40,8 @@ public: std::vector< std::shared_ptr< TetrisBlock > > &getObjects(); void setPos( double x, double y ); void setPos( const std::pair< double, double > &pos ); - void setPos( const SDLPP::Vec2D &vec ); - SDLPP::Vec2D getPos(); + void setPos( const SDLPP::Vec2D< double > &vec ); + SDLPP::Vec2D< double > getPos(); void clear(); void startDescend(); void stopDescend(); @@ -70,7 +70,7 @@ private: std::vector< std::vector< int > > pieces_rel_position; std::vector< std::shared_ptr< TetrisBlock > > pieces; - std::vector< SDLPP::Vec2D > original_pos; + std::vector< SDLPP::Vec2D< double > > original_pos; bool descend = false; int userMovement = 0; bool rotate_allowed = true; diff --git a/tetris/functions.cpp b/tetris/functions.cpp index dcded52..274a7fe 100644 --- a/tetris/functions.cpp +++ b/tetris/functions.cpp @@ -98,7 +98,7 @@ check_floor: g_cur_object->movePiece( 0, -BLOCK_SIZE ); for ( auto &block : g_cur_object->getObjects() ) { if ( scene->getCollisions( *block, { GAME_OVER } ).size() > 0 ) { - g_update_scenes.push_back(g_game_over_scene); + g_update_scenes.push_back( g_game_over_scene ); g_active_scenes.push_back( g_game_over_scene ); g_input_functions.push_back( gameOverSceneInput ); #ifdef FEATURE diff --git a/tetris/global_vars.cpp b/tetris/global_vars.cpp index e2f4890..d92065a 100644 --- a/tetris/global_vars.cpp +++ b/tetris/global_vars.cpp @@ -54,5 +54,5 @@ std::vector< std::shared_ptr< TetrisPiece > ( * )( std::shared_ptr< SDLPP::Font > g_font{}; std::shared_ptr< SDLPP::FontConfiguration > g_font_config{}; -std::vector> g_update_scenes{}; -std::vector> g_update_objects{}; +std::vector< std::shared_ptr< SDLPP::Scene > > g_update_scenes{}; +std::vector< std::shared_ptr< SDLPP::RenderObject > > g_update_objects{}; diff --git a/tetris/global_vars.hpp b/tetris/global_vars.hpp index a15b8cc..7b3af25 100644 --- a/tetris/global_vars.hpp +++ b/tetris/global_vars.hpp @@ -57,7 +57,7 @@ extern std::vector< std::shared_ptr< TetrisPiece > ( * )( extern std::shared_ptr< SDLPP::Font > g_font; extern std::shared_ptr< SDLPP::FontConfiguration > g_font_config; -extern std::vector> g_update_scenes; -extern std::vector> g_update_objects; +extern std::vector< std::shared_ptr< SDLPP::Scene > > g_update_scenes; +extern std::vector< std::shared_ptr< SDLPP::RenderObject > > g_update_objects; #endif