Tetris: add block texture
This commit is contained in:
+31
-13
@@ -15,7 +15,8 @@ constexpr uint64_t GAME_OVER_QUIT = 1;
|
||||
|
||||
constexpr uint64_t OPTIONS_MENU_COLOR_SCHEME = 0;
|
||||
constexpr uint64_t OPTIONS_MENU_SHADOW = 1;
|
||||
constexpr uint64_t OPTIONS_MENU_SAVE = 2;
|
||||
constexpr uint64_t OPTIONS_MENU_3D = 2;
|
||||
constexpr uint64_t OPTIONS_MENU_SAVE = 3;
|
||||
|
||||
// Scene preparation
|
||||
|
||||
@@ -229,7 +230,7 @@ void addOptionsSceneItems( SDLPP::Scene &scene, std::shared_ptr< SDLPP::Renderer
|
||||
y->centerX();
|
||||
scene.addObject( y );
|
||||
auto color_scheme =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.35, 0.4, 0.3, 0.09, r );
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.35, 0.3, 0.3, 0.09, r );
|
||||
color_scheme->setText( *font, "Color scheme: " + color_schemes_names[selected_color_scheme], colors["text"], colors["text_out"], 5 );
|
||||
color_scheme->centerX();
|
||||
color_scheme->setColor( colors["menu_item_background"] );
|
||||
@@ -237,12 +238,19 @@ void addOptionsSceneItems( SDLPP::Scene &scene, std::shared_ptr< SDLPP::Renderer
|
||||
g_options_options.push_back(color_scheme);
|
||||
scene.addObject( color_scheme );
|
||||
auto shadow =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.5, 0.2, 0.09, r );
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.4, 0.2, 0.09, r );
|
||||
shadow->setText( *font, "Show shadow: YES", colors["text"], colors["text_out"], 5 );
|
||||
shadow->centerX();
|
||||
shadow->setId(MENU_ITEM_ID);
|
||||
g_options_options.push_back(shadow);
|
||||
scene.addObject(shadow);
|
||||
auto show3d =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.5, 0.2, 0.09, r );
|
||||
show3d->setText( *font, "Show block texture: NO", colors["text"], colors["text_out"], 5 );
|
||||
show3d->centerX();
|
||||
show3d->setId(MENU_ITEM_ID);
|
||||
g_options_options.push_back(show3d);
|
||||
scene.addObject(show3d);
|
||||
auto save =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.45, 0.6, 0.1, 0.09, r );
|
||||
save->setText( *font, "SAVE", colors["text"], colors["text_out"], 5 );
|
||||
@@ -454,7 +462,7 @@ void handleKeyDownMenu( SDL_Keycode key ) {
|
||||
case SDLK_DOWN:
|
||||
g_menu_options[g_menu_select]->unsetColor();
|
||||
g_menu_select++;
|
||||
if ( g_menu_select > g_menu_max )
|
||||
if ( g_menu_select >= g_menu_options.size() )
|
||||
g_menu_select = 0;
|
||||
g_menu_options[g_menu_select]->setColor( colors["menu_item_background"] );
|
||||
break;
|
||||
@@ -463,7 +471,7 @@ void handleKeyDownMenu( SDL_Keycode key ) {
|
||||
g_menu_options[g_menu_select]->unsetColor();
|
||||
g_menu_select--;
|
||||
if ( g_menu_select < 0 )
|
||||
g_menu_select = g_menu_max;
|
||||
g_menu_select = g_menu_options.size() - 1;
|
||||
g_menu_options[g_menu_select]->setColor( colors["menu_item_background"] );
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
@@ -529,7 +537,7 @@ void handleKeyDownGameOver( SDL_Keycode key ) {
|
||||
case SDLK_DOWN:
|
||||
g_game_over_options[g_game_over_select]->unsetColor();
|
||||
g_game_over_select++;
|
||||
if ( g_game_over_select > g_game_over_max )
|
||||
if ( g_game_over_select >= g_game_over_options.size() )
|
||||
g_game_over_select = 0;
|
||||
g_game_over_options[g_game_over_select]->setColor( colors["menu_item_background"] );
|
||||
break;
|
||||
@@ -538,7 +546,7 @@ void handleKeyDownGameOver( SDL_Keycode key ) {
|
||||
g_game_over_options[g_game_over_select]->unsetColor();
|
||||
g_game_over_select--;
|
||||
if ( g_game_over_select < 0 )
|
||||
g_game_over_select = g_game_over_max;
|
||||
g_game_over_select = g_game_over_options.size() - 1;
|
||||
g_game_over_options[g_game_over_select]->setColor( colors["menu_item_background"] );
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
@@ -601,7 +609,7 @@ void handleKeyDownOptions( SDL_Keycode key ) {
|
||||
case SDLK_DOWN:
|
||||
g_options_options[g_options_select]->unsetColor();
|
||||
g_options_select++;
|
||||
if ( g_options_select > g_options_max )
|
||||
if ( g_options_select >= g_options_options.size() )
|
||||
g_options_select = 0;
|
||||
g_options_options[g_options_select]->setColor( colors["menu_item_background"] );
|
||||
break;
|
||||
@@ -610,7 +618,7 @@ void handleKeyDownOptions( SDL_Keycode key ) {
|
||||
g_options_options[g_options_select]->unsetColor();
|
||||
g_options_select--;
|
||||
if ( g_options_select < 0 )
|
||||
g_options_select = g_options_max;
|
||||
g_options_select = g_options_options.size() - 1;
|
||||
g_options_options[g_options_select]->setColor( colors["menu_item_background"] );
|
||||
break;
|
||||
case SDLK_RIGHT:
|
||||
@@ -620,12 +628,17 @@ void handleKeyDownOptions( SDL_Keycode key ) {
|
||||
selected_color_scheme++;
|
||||
if(selected_color_scheme >= color_schemes_names.size())
|
||||
selected_color_scheme = 0;
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[0])->changeText("Color scheme: " + color_schemes_names[selected_color_scheme]);
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[OPTIONS_MENU_COLOR_SCHEME])->changeText("Color scheme: " + color_schemes_names[selected_color_scheme]);
|
||||
g_update_colors = true;
|
||||
break;
|
||||
case OPTIONS_MENU_SHADOW:
|
||||
g_show_shadow = !g_show_shadow;
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[1])->changeText(std::string("Show shadow: ") + (g_show_shadow ? "YES" : "NO"));
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[OPTIONS_MENU_SHADOW])->changeText(std::string("Show shadow: ") + (g_show_shadow ? "YES" : "NO"));
|
||||
g_update_colors = true;
|
||||
break;
|
||||
case OPTIONS_MENU_3D:
|
||||
g_show_3d = !g_show_3d;
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[OPTIONS_MENU_3D])->changeText(std::string("Show block texture: ") + (g_show_3d ? "YES" : "NO"));
|
||||
g_update_colors = true;
|
||||
default:
|
||||
break;
|
||||
@@ -638,12 +651,17 @@ void handleKeyDownOptions( SDL_Keycode key ) {
|
||||
if(selected_color_scheme == 0)
|
||||
selected_color_scheme = color_schemes_names.size();
|
||||
selected_color_scheme--;
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[0])->changeText("Color scheme: " + color_schemes_names[selected_color_scheme]);
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[OPTIONS_MENU_COLOR_SCHEME])->changeText("Color scheme: " + color_schemes_names[selected_color_scheme]);
|
||||
g_update_colors = true;
|
||||
break;
|
||||
case OPTIONS_MENU_SHADOW:
|
||||
g_show_shadow = !g_show_shadow;
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[1])->changeText(std::string("Show shadow: ") + (g_show_shadow ? "YES" : "NO"));
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[OPTIONS_MENU_SHADOW])->changeText(std::string("Show shadow: ") + (g_show_shadow ? "YES" : "NO"));
|
||||
g_update_colors = true;
|
||||
break;
|
||||
case OPTIONS_MENU_3D:
|
||||
g_show_3d = !g_show_3d;
|
||||
std::dynamic_pointer_cast<SDLPP::TextRenderer>(g_options_options[OPTIONS_MENU_3D])->changeText(std::string("Show block texture: ") + (g_show_3d ? "YES" : "NO"));
|
||||
g_update_colors = true;
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user