TETRIS: Use FontConfiguration
This commit is contained in:
+36
-49
@@ -21,8 +21,7 @@ constexpr uint64_t OPTIONS_MENU_SAVE = 3;
|
||||
// Scene preparation
|
||||
|
||||
void addMainSceneItems( SDLPP::Scene &scene,
|
||||
std::shared_ptr< SDLPP::Renderer > &r,
|
||||
std::shared_ptr< SDLPP::Font > font ) {
|
||||
std::shared_ptr< SDLPP::Renderer > &r ) {
|
||||
auto bg = std::make_shared< SDLPP::RectangleRender >(
|
||||
0, 0, 10, 10, r, colors["background"], true );
|
||||
bg->setPermanent();
|
||||
@@ -90,16 +89,15 @@ void addMainSceneItems( SDLPP::Scene &scene,
|
||||
scene.addObject( bottom_barrier );
|
||||
|
||||
auto tetris = std::make_shared< SDLPP::TextRenderer >(
|
||||
0.4, 0, 0.2, 0.1, r, font, "TETRIS", colors["text"], colors["text_out"],
|
||||
0.1 );
|
||||
0.4, 0, 0.2, 0.1, r, "TETRIS", g_font_config );
|
||||
tetris->centerX();
|
||||
tetris->setStatic();
|
||||
tetris->setId( TEXT_ID );
|
||||
scene.addObject( tetris );
|
||||
|
||||
auto next = std::make_shared< SDLPP::TextRenderer >(
|
||||
RIGHT_BORDER + 0.1, 0.35, 0.2, 0.1, r, font, "NEXT", colors["text"],
|
||||
colors["text_out"], 0.1, SDLPP_TEXT_CENTER );
|
||||
RIGHT_BORDER + 0.1, 0.35, 0.2, 0.1, r, "NEXT", g_font_config,
|
||||
SDLPP_TEXT_CENTER );
|
||||
next->centerX();
|
||||
next->setStatic();
|
||||
next->setId( TEXT_ID );
|
||||
@@ -117,16 +115,16 @@ void addMainSceneItems( SDLPP::Scene &scene,
|
||||
scene.addObject( gameover );
|
||||
|
||||
auto score_text = std::make_shared< SDLPP::TextRenderer >(
|
||||
RIGHT_BORDER + 0.1, 0.1, 0.2, 0.1, r, font, "SCORE", colors["text"],
|
||||
colors["text_out"], 0.1, SDLPP_TEXT_CENTER );
|
||||
RIGHT_BORDER + 0.1, 0.1, 0.2, 0.1, r, "SCORE", g_font_config,
|
||||
SDLPP_TEXT_CENTER );
|
||||
score_text->centerX();
|
||||
score_text->setStatic();
|
||||
score_text->setId( TEXT_ID );
|
||||
scene.addObject( score_text );
|
||||
|
||||
auto score_texture = std::make_shared< SDLPP::TextRenderer >(
|
||||
RIGHT_BORDER + 0.1, 0.2, 0.2, 0.1, r, font, "0", colors["text"],
|
||||
colors["text_out"], 0.1, SDLPP_TEXT_TOP );
|
||||
RIGHT_BORDER + 0.1, 0.2, 0.2, 0.1, r, "0", g_font_config,
|
||||
SDLPP_TEXT_TOP );
|
||||
score_texture->centerX();
|
||||
score_texture->setStatic();
|
||||
score_texture->setId( SCORE_TEXTURE_ID );
|
||||
@@ -161,21 +159,20 @@ void addMainSceneItems( SDLPP::Scene &scene,
|
||||
}
|
||||
|
||||
void addMenuSceneItems( SDLPP::Scene &scene,
|
||||
std::shared_ptr< SDLPP::Renderer > &r,
|
||||
std::shared_ptr< SDLPP::Font > font ) {
|
||||
std::shared_ptr< SDLPP::Renderer > &r ) {
|
||||
auto bg = std::make_shared< SDLPP::RectangleRender >(
|
||||
0, 0, 10, 10, r, colors["menu_background"], true );
|
||||
bg->setId( MENU_BACKGROUND_ID );
|
||||
bg->setPermanent( true );
|
||||
scene.addObject( bg );
|
||||
auto y = std::make_shared< SDLPP::TextRenderer >( 0.25, 0.1, 0.5, 0.3, r );
|
||||
y->setText( font, "PAUSED", colors["text"], colors["text_out"], 0.1 );
|
||||
y->setText( "PAUSED", g_font_config );
|
||||
y->setId( MENU_TEXT_ID );
|
||||
y->centerX();
|
||||
scene.addObject( y );
|
||||
auto resume =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.46, 0.2, 0.08, r );
|
||||
resume->setText( font, "Resume", colors["text"], colors["text_out"], 0.1 );
|
||||
resume->setText( "Resume", g_font_config );
|
||||
resume->setColor( colors["menu_item_background"] );
|
||||
resume->centerX();
|
||||
resume->setId( MENU_ITEM_ID );
|
||||
@@ -183,23 +180,21 @@ void addMenuSceneItems( SDLPP::Scene &scene,
|
||||
scene.addObject( resume );
|
||||
auto options =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.56, 0.2, 0.08, r );
|
||||
options->setText( font, "Options", colors["text"], colors["text_out"],
|
||||
0.1 );
|
||||
options->setText( "Options", g_font_config );
|
||||
options->centerX();
|
||||
options->setId( MENU_ITEM_ID );
|
||||
g_menu_options.push_back( options );
|
||||
scene.addObject( options );
|
||||
auto restart =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.66, 0.2, 0.08, r );
|
||||
restart->setText( font, "Restart", colors["text"], colors["text_out"],
|
||||
0.1 );
|
||||
restart->setText( "Restart", g_font_config );
|
||||
restart->centerX();
|
||||
restart->setId( MENU_ITEM_ID );
|
||||
g_menu_options.push_back( restart );
|
||||
scene.addObject( restart );
|
||||
auto quit =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.76, 0.2, 0.08, r );
|
||||
quit->setText( font, "Quit Game", colors["text"], colors["text_out"], 0.1 );
|
||||
quit->setText( "Quit Game", g_font_config );
|
||||
quit->centerX();
|
||||
quit->setId( MENU_ITEM_ID );
|
||||
g_menu_options.push_back( quit );
|
||||
@@ -207,22 +202,20 @@ void addMenuSceneItems( SDLPP::Scene &scene,
|
||||
}
|
||||
|
||||
void addGameOverSceneItems( SDLPP::Scene &scene,
|
||||
std::shared_ptr< SDLPP::Renderer > &r,
|
||||
std::shared_ptr< SDLPP::Font > font ) {
|
||||
std::shared_ptr< SDLPP::Renderer > &r ) {
|
||||
auto bg = std::make_shared< SDLPP::RectangleRender >(
|
||||
0, 0, 10, 10, r, colors["menu_background"], true );
|
||||
bg->setId( MENU_BACKGROUND_ID );
|
||||
bg->setPermanent( true );
|
||||
scene.addObject( bg );
|
||||
auto y = std::make_shared< SDLPP::TextRenderer >( 0.25, 0.1, 0.5, 0.3, r );
|
||||
y->setText( font, "GAME OVER", colors["text"], colors["text_out"], 0.1 );
|
||||
y->setText( "GAME OVER", g_font_config );
|
||||
y->setId( 0 );
|
||||
y->centerX();
|
||||
scene.addObject( y );
|
||||
auto restart =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.5, 0.2, 0.1, r );
|
||||
restart->setText( font, "Restart", colors["text"], colors["text_out"],
|
||||
0.1 );
|
||||
restart->setText( "Restart", g_font_config );
|
||||
restart->centerX();
|
||||
restart->setColor( colors["menu_item_background"] );
|
||||
restart->setId( MENU_ITEM_ID );
|
||||
@@ -230,7 +223,7 @@ void addGameOverSceneItems( SDLPP::Scene &scene,
|
||||
scene.addObject( restart );
|
||||
auto quit =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.4, 0.7, 0.2, 0.1, r );
|
||||
quit->setText( font, "Quit Game", colors["text"], colors["text_out"], 0.1 );
|
||||
quit->setText( "Quit Game", g_font_config );
|
||||
quit->centerX();
|
||||
quit->setId( MENU_ITEM_ID );
|
||||
g_game_over_options.push_back( quit );
|
||||
@@ -238,23 +231,22 @@ void addGameOverSceneItems( SDLPP::Scene &scene,
|
||||
}
|
||||
|
||||
void addOptionsSceneItems( SDLPP::Scene &scene,
|
||||
std::shared_ptr< SDLPP::Renderer > &r,
|
||||
std::shared_ptr< SDLPP::Font > font ) {
|
||||
std::shared_ptr< SDLPP::Renderer > &r ) {
|
||||
auto bg = std::make_shared< SDLPP::RectangleRender >(
|
||||
0, 0, 10, 10, r, colors["menu_background"], true );
|
||||
bg->setId( MENU_BACKGROUND_ID );
|
||||
bg->setPermanent( true );
|
||||
scene.addObject( bg );
|
||||
auto y = std::make_shared< SDLPP::TextRenderer >( 0.25, 0.1, 0.5, 0.3, r );
|
||||
y->setText( font, "OPTIONS", colors["text"], colors["text_out"], 0.1 );
|
||||
y->setText( "OPTIONS", g_font_config );
|
||||
y->setId( 0 );
|
||||
y->centerX();
|
||||
scene.addObject( y );
|
||||
auto color_scheme =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.18, 0.35, 0.64, 0.09, r );
|
||||
color_scheme->setText(
|
||||
font, "Color scheme: " + color_schemes_names[selected_color_scheme],
|
||||
colors["text"], colors["text_out"], 0.1 );
|
||||
color_scheme->setText( "Color scheme: " +
|
||||
color_schemes_names[selected_color_scheme],
|
||||
g_font_config );
|
||||
color_scheme->centerX();
|
||||
color_scheme->setColor( colors["menu_item_background"] );
|
||||
color_scheme->setId( MENU_ITEM_ID );
|
||||
@@ -262,23 +254,21 @@ void addOptionsSceneItems( SDLPP::Scene &scene,
|
||||
scene.addObject( color_scheme );
|
||||
auto shadow =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.26, 0.45, 0.48, 0.09, r );
|
||||
shadow->setText( font, "Show shadow: YES", colors["text"],
|
||||
colors["text_out"], 0.1 );
|
||||
shadow->setText( "Show shadow: YES", g_font_config );
|
||||
shadow->centerX();
|
||||
shadow->setId( MENU_ITEM_ID );
|
||||
g_options_options.push_back( shadow );
|
||||
scene.addObject( shadow );
|
||||
auto show3d =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.2, 0.55, 0.6, 0.09, r );
|
||||
show3d->setText( font, "Show block texture: NO", colors["text"],
|
||||
colors["text_out"], 0.1 );
|
||||
show3d->setText( "Show block texture: NO", g_font_config );
|
||||
show3d->centerX();
|
||||
show3d->setId( MENU_ITEM_ID );
|
||||
g_options_options.push_back( show3d );
|
||||
scene.addObject( show3d );
|
||||
auto save =
|
||||
std::make_shared< SDLPP::TextRenderer >( 0.42, 0.65, 0.16, 0.09, r );
|
||||
save->setText( font, "SAVE", colors["text"], colors["text_out"], 0.1 );
|
||||
save->setText( "SAVE", g_font_config );
|
||||
save->centerX();
|
||||
save->setId( MENU_ITEM_ID );
|
||||
g_options_options.push_back( save );
|
||||
@@ -286,34 +276,30 @@ void addOptionsSceneItems( SDLPP::Scene &scene,
|
||||
}
|
||||
|
||||
std::shared_ptr< SDLPP::Scene >
|
||||
prepareMainScene( std::shared_ptr< SDLPP::Renderer > renderer,
|
||||
std::shared_ptr< SDLPP::Font > font ) {
|
||||
prepareMainScene( std::shared_ptr< SDLPP::Renderer > renderer ) {
|
||||
auto scene = std::make_shared< SDLPP::Scene >( renderer );
|
||||
addMainSceneItems( *scene, renderer, font );
|
||||
addMainSceneItems( *scene, renderer );
|
||||
return scene;
|
||||
}
|
||||
|
||||
std::shared_ptr< SDLPP::Scene >
|
||||
prepareMenuScene( std::shared_ptr< SDLPP::Renderer > renderer,
|
||||
std::shared_ptr< SDLPP::Font > font ) {
|
||||
prepareMenuScene( std::shared_ptr< SDLPP::Renderer > renderer ) {
|
||||
auto scene = std::make_shared< SDLPP::Scene >( renderer );
|
||||
addMenuSceneItems( *scene, renderer, font );
|
||||
addMenuSceneItems( *scene, renderer );
|
||||
return scene;
|
||||
}
|
||||
|
||||
std::shared_ptr< SDLPP::Scene >
|
||||
prepareGameOverScene( std::shared_ptr< SDLPP::Renderer > renderer,
|
||||
std::shared_ptr< SDLPP::Font > font ) {
|
||||
prepareGameOverScene( std::shared_ptr< SDLPP::Renderer > renderer ) {
|
||||
auto scene = std::make_shared< SDLPP::Scene >( renderer );
|
||||
addGameOverSceneItems( *scene, renderer, font );
|
||||
addGameOverSceneItems( *scene, renderer );
|
||||
return scene;
|
||||
}
|
||||
|
||||
std::shared_ptr< SDLPP::Scene >
|
||||
prepareOptionsScene( std::shared_ptr< SDLPP::Renderer > renderer,
|
||||
std::shared_ptr< SDLPP::Font > font ) {
|
||||
prepareOptionsScene( std::shared_ptr< SDLPP::Renderer > renderer ) {
|
||||
auto scene = std::make_shared< SDLPP::Scene >( renderer );
|
||||
addOptionsSceneItems( *scene, renderer, font );
|
||||
addOptionsSceneItems( *scene, renderer );
|
||||
return scene;
|
||||
}
|
||||
|
||||
@@ -655,7 +641,6 @@ void gameOverSceneInput(
|
||||
}
|
||||
|
||||
void saveOptions() {
|
||||
g_update_colors = true;
|
||||
if ( g_cur_shadow )
|
||||
g_cur_shadow->setHidden( !g_show_shadow );
|
||||
g_main_scene->setPrevTicks( SDL_GetTicks() );
|
||||
@@ -715,6 +700,7 @@ void handleKeyDownOptions( SDL_Keycode key ) {
|
||||
g_options_options[OPTIONS_MENU_3D].get() )
|
||||
->changeText( std::string( "Show block texture: " ) +
|
||||
( g_show_3d ? "YES" : "NO" ) );
|
||||
g_update_3d = true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -745,6 +731,7 @@ void handleKeyDownOptions( SDL_Keycode key ) {
|
||||
g_options_options[OPTIONS_MENU_3D].get() )
|
||||
->changeText( std::string( "Show block texture: " ) +
|
||||
( g_show_3d ? "YES" : "NO" ) );
|
||||
g_update_3d = true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user