void TextObject::draw(DrawingContext& context) { context.push_transform(); context.set_translation(Vector(0, 0)); if(fading > 0) { context.set_alpha((fadetime-fading) / fadetime); } else if(fading < 0) { context.set_alpha(-fading / fadetime); } else if(!visible) { context.pop_transform(); return; } float width = 500; float height = 70; Vector spos = pos + get_anchor_pos(Rectf(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), width, height, anchor); context.draw_filled_rect(spos, Vector(width, height), Color(0.6f, 0.7f, 0.8f, 0.5f), LAYER_GUI-50); if (centered) { context.draw_center_text(font, text, spos, LAYER_GUI-40, TextObject::default_color); } else { context.draw_text(font, text, spos + Vector(10, 10), ALIGN_LEFT, LAYER_GUI-40, TextObject::default_color); } context.pop_transform(); }
void Climbable::draw(DrawingContext& context) { if (climbed_by && !message.empty()) { context.push_transform(); context.set_translation(Vector(0, 0)); Vector pos = Vector(0, SCREEN_HEIGHT/2 - Resources::normal_font->get_height()/2); context.draw_center_text(Resources::normal_font, _(message), pos, LAYER_HUD, Climbable::text_color); context.pop_transform(); } }
void SecretAreaTrigger::draw(DrawingContext& context) { if (message_timer.started()) { context.push_transform(); context.set_translation(Vector(0, 0)); Vector pos = Vector(0, SCREEN_HEIGHT/2 - Resources::normal_font->get_height()/2); context.draw_center_text(Resources::normal_font, message, pos, LAYER_HUD, SecretAreaTrigger::text_color); context.pop_transform(); } if (message_timer.check()) { remove_me(); } }
void LevelIntro::draw(DrawingContext& context) { const Statistics& stats = level->stats; int py = static_cast<int>(SCREEN_HEIGHT / 2 - Resources::normal_font->get_height() / 2); context.draw_filled_rect(Vector(0, 0), Vector(SCREEN_WIDTH, SCREEN_HEIGHT), Color(0.0f, 0.0f, 0.0f, 1.0f), 0); { context.draw_center_text(Resources::normal_font, level->get_name(), Vector(0, py), LAYER_FOREGROUND1, LevelIntro::header_color); py += static_cast<int>(Resources::normal_font->get_height()); } std::string author = level->get_author(); if ((author != "") && (author != "SuperTux Team")) { std::string author_text = std::string(_("contributed by ")) + author; context.draw_center_text(Resources::small_font, author_text, Vector(0, py), LAYER_FOREGROUND1, LevelIntro::author_color); py += static_cast<int>(Resources::small_font->get_height()); } py += 32; { player_sprite->draw(context, Vector((SCREEN_WIDTH - player_sprite->get_current_hitbox_width()) / 2, py + player_sprite_py), LAYER_FOREGROUND1); py += static_cast<int>(player_sprite->get_current_hitbox_height()); } py += 32; { context.draw_center_text(Resources::normal_font, std::string("- ") + _("Best Level Statistics") + std::string(" -"), Vector(0, py), LAYER_FOREGROUND1, LevelIntro::stat_hdr_color); py += static_cast<int>(Resources::normal_font->get_height()); } { std::stringstream ss; ss << _("Coins") << ": " << Statistics::coins_to_string((best_level_statistics && (best_level_statistics->coins >= 0)) ? best_level_statistics->coins : 0, stats.total_coins); context.draw_center_text(Resources::normal_font, ss.str(), Vector(0, py), LAYER_FOREGROUND1, LevelIntro::stat_color); py += static_cast<int>(Resources::normal_font->get_height()); } { std::stringstream ss; ss << _("Secrets") << ": " << Statistics::secrets_to_string((best_level_statistics && (best_level_statistics->coins >= 0)) ? best_level_statistics->secrets : 0, stats.total_secrets); context.draw_center_text(Resources::normal_font, ss.str(), Vector(0, py), LAYER_FOREGROUND1,LevelIntro::stat_color); py += static_cast<int>(Resources::normal_font->get_height()); } { std::stringstream ss; ss << _("Time") << ": " << Statistics::time_to_string((best_level_statistics && (best_level_statistics->coins >= 0)) ? best_level_statistics->time : 0); context.draw_center_text(Resources::normal_font, ss.str(), Vector(0, py), LAYER_FOREGROUND1,LevelIntro::stat_color); py += static_cast<int>(Resources::normal_font->get_height()); } }