本文整理汇总了C++中DrawingContext::get_height方法的典型用法代码示例。如果您正苦于以下问题:C++ DrawingContext::get_height方法的具体用法?C++ DrawingContext::get_height怎么用?C++ DrawingContext::get_height使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DrawingContext
的用法示例。
在下文中一共展示了DrawingContext::get_height方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Copyright
void
PingusMenu::draw_background(DrawingContext& gc)
{
background->draw(gc);
gc.draw(logo, Vector2i((gc.get_width()/2) - (logo.get_width()/2),
gc.get_height()/2 - 280));
gc.print_left(Fonts::pingus_small, Vector2i(gc.get_width()/2 - 400 + 25, gc.get_height()-140),
"Pingus " VERSION " - Copyright (C) 1998-2011 Ingo Ruhnke <[email protected]>\n"
"See the file AUTHORS for a complete list of contributors.\n"
"Pingus comes with ABSOLUTELY NO WARRANTY. This is free software, and you are\n"
"welcome to redistribute it under certain conditions; see the file COPYING for details.\n");
gc.draw_fillrect(Rect(0,
Display::get_height () - 26,
Display::get_width (),
Display::get_height ()),
Color(0, 0, 0, 255));
gc.print_center(Fonts::pingus_small,
Vector2i(gc.get_width() / 2,
gc.get_height() - Fonts::pingus_small.get_height() - 8),
help);
if (0) // display hint
{
gc.print_center(Fonts::pingus_small,
Vector2i(gc.get_width() / 2,
gc.get_height() - Fonts::pingus_small.get_height()),
hint);
}
}
示例2: int
void
SmallMap::draw(DrawingContext& gc)
{
// FIXME: This is potentially dangerous, since we don't know how
// long 'gc' will be alive. Should use a DrawingContext for caching.
gc_ptr = &gc;
World* const& world = server->get_world();
Vector2i of = playfield->get_pos();
Rect view_rect;
if (world->get_width() > gc.get_width())
{
int rwidth = int(gc.get_width() * rect.get_width() / world->get_width());
view_rect.left = rect.left + (of.x * rect.get_width() / world->get_width()) - rwidth/2;
view_rect.right = view_rect.left + rwidth;
}
else
{
view_rect.left = rect.left;
view_rect.right = rect.left + rect.get_width();
}
if (world->get_height() > gc.get_height())
{
int rheight = int(gc.get_height() * rect.get_height() / world->get_height());
view_rect.top = rect.top + (of.y * rect.get_height() / world->get_height()) - rheight/2;
view_rect.bottom = view_rect.top + rheight;
}
else
{
view_rect.top = rect.top;
view_rect.bottom = rect.top + rect.get_height();
}
gc.draw(image->get_surface(), Vector2i(rect.left, rect.top));
gc.draw_rect(view_rect, Color(0, 255, 0));
server->get_world()->draw_smallmap(this);
// Draw Pingus
PinguHolder* pingus = world->get_pingus();
for(PinguIter i = pingus->begin(); i != pingus->end(); ++i)
{
int x = static_cast<int>(static_cast<float>(rect.left) + ((*i)->get_x() * static_cast<float>(rect.get_width())
/ static_cast<float>(world->get_width())));
int y = static_cast<int>(static_cast<float>(rect.top) + ((*i)->get_y() * static_cast<float>(rect.get_height())
/ static_cast<float>(world->get_height())));
gc.draw_line(Vector2i(x, y), Vector2i(x, y-2), Color(255, 255, 0));
}
gc_ptr = 0;
}
示例3:
void
StoryScreenComponent::draw (DrawingContext& gc)
{
gc.draw(background, Vector2i(gc.get_width()/2, gc.get_height()/2));
gc.print_center(Fonts::chalk_large, Display::get_width()/2,
Display::get_height()/2 - 200, story->get_title());
gc.draw(page_surface, Vector2i(gc.get_width()/2, gc.get_height()/2 - 65));
gc.print_left(Fonts::chalk_normal,
Display::get_width()/2 - 280,
Display::get_height()/2 + 35,
display_text);
}
示例4: switch
void
Credits::draw_background (DrawingContext& gc)
{
{
// Paint the background wood panel
for(int y = 0; y < gc.get_height(); y += background.get_height())
for(int x = 0; x < gc.get_width(); x += background.get_width())
gc.draw(background, Vector2i(x, y));
}
int x;
int y;
int yof;
x = Display::get_width()/2;
y = static_cast<int>(offset);
gc.draw(blackboard, Vector2i(gc.get_width()/2, gc.get_height()/2));
gc.draw(pingu, Vector2i(gc.get_width()/2, gc.get_height()/2 - 20));
yof = 0;
scene_context->clear();
scene_context->set_cliprect(Rect(gc.get_width()/2 - 685/2, gc.get_height()/2 - 250,
gc.get_width()/2 + 685/2, gc.get_height()/2 + 250));
for (std::vector<std::string>::iterator i = credits.begin(); i != credits.end(); ++i)
{
switch ((*i)[0])
{
case '-':
scene_context->color().print_center(font, Vector2i(x, (y + yof)), i->substr(1));
yof += font.get_height() + 5;
break;
case '_':
scene_context->color().print_center(font_small, Vector2i(x, (y + yof)), i->substr(1));
yof += font_small.get_height() + 5;
break;
case 'n':
yof += 50;
break;
default:
log_error("Credits: Syntax error: Unknown format: '%1%'", (*i)[0]);
break;
}
}
gc.draw(new SceneContextDrawingRequest(scene_context.get(), Vector2i(0,0), 100));
}
示例5:
void
OptionMenu::draw_background(DrawingContext& gc)
{
gc.fill_screen(Color(0, 0, 0));
// gc.draw_fillrect(Rect(100, 100, 400, 400), Color(255, 0, 0));
gc.draw(background, Vector2i(gc.get_width()/2 - background.get_width()/2, gc.get_height()/2 - background.get_height()/2));
gc.print_center(Fonts::chalk_large,
Vector2i(gc.get_width()/2,
gc.get_height()/2 - 210),
_("Option Menu"));
gc.print_center(Fonts::chalk_normal, Vector2i(gc.get_width()/2 + 225 + 30, gc.get_height()/2 + 125 - 20), _("Close"));
}
示例6:
void
AddOnMenu::draw_background(DrawingContext& gc)
{
// gc.draw_fillrect(Rect(100, 100, 400, 400), Color(255, 0, 0));
gc.draw(background, Vector2i(gc.get_width()/2, gc.get_height()/2));
gc.print_center(Fonts::chalk_large, Vector2i(gc.get_width()/2, 90), "Add-On Menu");
gc.print_left(Fonts::chalk_normal, Vector2i(120, 145), "X-Mas Pingus Sprites");
gc.print_left(Fonts::chalk_small, Vector2i(140, 170), "christmas look for penguins");
gc.print_left(Fonts::chalk_small, Vector2i(140, 190), "Author: John Foo <[email protected]>");
gc.print_center(Fonts::chalk_normal, Vector2i(gc.get_width()/2, gc.get_height()/2 + 160), "Update Online [ ]");
gc.print_center(Fonts::chalk_normal, Vector2i(gc.get_width()/2 + 245 + 30, gc.get_height()/2 + 150 - 20), _("Close"));
gc.draw(ok_button, Vector2i(gc.get_width()/2 + 245, gc.get_height()/2 + 150));
gc.draw(ok_button, Vector2i(610, 145));
}
示例7:
void
StoryScreenComponent::draw (DrawingContext& gc)
{
// Paint the background wood panel
for(int y = 0; y < gc.get_height(); y += background.get_height())
for(int x = 0; x < gc.get_width(); x += background.get_width())
gc.draw(background, Vector2i(x, y));
gc.draw(blackboard, Vector2i(gc.get_width()/2, gc.get_height()/2));
gc.print_center(Fonts::chalk_large,
Vector2i(gc.get_width()/2, gc.get_height()/2 - 200),
story->get_title());
gc.draw(page_surface, Vector2i(gc.get_width()/2, gc.get_height()/2 - 65));
gc.print_left(Fonts::chalk_normal,
Vector2i(gc.get_width()/2 - 280,
gc.get_height()/2 + 35),
display_text);
}
示例8:
void
OptionMenu::draw_background(DrawingContext& gc)
{
// Paint the background wood panel
for(int y = 0; y < gc.get_height(); y += m_background.get_height())
for(int x = 0; x < gc.get_width(); x += m_background.get_width())
gc.draw(m_background, Vector2i(x, y));
// gc.draw_fillrect(Rect(100, 100, 400, 400), Color(255, 0, 0));
gc.draw(m_blackboard, Vector2i(gc.get_width()/2, gc.get_height()/2));
gc.print_center(Fonts::chalk_large,
Vector2i(gc.get_width()/2,
gc.get_height()/2 - 240),
_("Option Menu"));
gc.print_center(Fonts::chalk_normal, Vector2i(gc.get_width()/2 + 245 + 30, gc.get_height()/2 + 150 - 20), _("Close"));
gc.print_left(Fonts::chalk_normal,
Vector2i(gc.get_width()/2 - 320, gc.get_height()/2 + 200),
_("Some options require a restart of the game to take effect."));
}
示例9: Vector
void
Thunderstorm::draw(DrawingContext& context)
{
if (!flash_display_timer.started()) return;
float alpha = 0.33f;
context.push_transform();
context.set_translation(Vector(0, 0));
context.color().draw_filled_rect(Vector(0, 0),
Vector(static_cast<float>(context.get_width()),
static_cast<float>(context.get_height())),
Color(1, 1, 1, alpha), layer);
context.pop_transform();
}
示例10:
void
StartScreenComponent::draw(DrawingContext& gc)
{
// Paint the background wood panel
for(int y = 0; y < gc.get_height(); y += background.get_height())
for(int x = 0; x < gc.get_width(); x += background.get_width())
gc.draw(background, Vector2i(x, y));
gc.draw(blackboard, Vector2i(gc.get_width()/2, gc.get_height()/2));
int left_x = gc.get_width()/2 - 150;
int right_x = gc.get_width()/2 + 150;
int y = gc.get_height()/2 + 40;
gc.print_center(Fonts::chalk_large,
Vector2i(gc.get_width() /2,
gc.get_height()/2 - 230),
_(plf.get_levelname()));
gc.print_left(Fonts::chalk_normal,
Vector2i(gc.get_width() /2 - 300,
gc.get_height()/2 - 170),
format_description(800 - 200));
y += 32;
y += 45;
gc.print_left (Fonts::chalk_normal, Vector2i(left_x, y), _("Number of Pingus: "));
gc.print_right(Fonts::chalk_normal, Vector2i(right_x, y), StringUtil::to_string(plf.get_number_of_pingus()));
gc.print_left (Fonts::chalk_normal, Vector2i(left_x, (y += 30)), _("Number to Save: "));
gc.print_right(Fonts::chalk_normal, Vector2i(right_x, y), StringUtil::to_string(plf.get_number_to_save()));
gc.print_left (Fonts::chalk_normal, Vector2i(left_x, (y += 30)), _("Time: "));
gc.print_right(Fonts::chalk_normal, Vector2i(right_x, y), time_str);
gc.print_center(Fonts::chalk_small,
Vector2i(gc.get_width()/2,
gc.get_height()/2 + 215),
_("Author: ") + plf.get_author());
if (globals::developer_mode)
{
gc.print_center(Fonts::chalk_small, Vector2i(gc.get_width()/2, gc.get_height()-50), plf.get_resname());
}
}
示例11: pingu_pos
void
Worldmap::draw(DrawingContext& gc)
{
Vector2i pingu_pos(static_cast<int>(pingus->get_pos().x),
static_cast<int>(pingus->get_pos().y));
int min, max;
int width = worldmap.get_width();
int height = worldmap.get_height();
if (width >= gc.get_width())
{
min = gc.get_width()/2;
max = width - gc.get_width()/2;
}
else
{
min = width - gc.get_width()/2;
max = gc.get_width()/2;
}
pingu_pos.x = Math::clamp(min, pingu_pos.x, max);
if (height >= gc.get_height())
{
min = gc.get_height()/2;
max = height - gc.get_height()/2;
}
else
{
min = height - gc.get_height()/2;
max = gc.get_height()/2;
}
pingu_pos.y = Math::clamp(min, pingu_pos.y, max);
gc_state.set_size(gc.get_width(), gc.get_height());
gc_state.set_pos(Vector2i(pingu_pos.x, pingu_pos.y));
gc_state.push(gc);
for (auto i = drawables.begin (); i != drawables.end (); ++i)
{
(*i)->draw(gc);
}
Vector2f mpos = gc_state.screen2world(Vector2i(mouse_x, mouse_y));
Dot* dot = path_graph->get_dot(mpos.x, mpos.y);
if (dot)
dot->draw_hover(gc);
gc_state.pop(gc);
}
示例12: Sizef
void
InfoBox::draw(DrawingContext& context)
{
float x1 = static_cast<float>(context.get_width()) / 2.0f - 200.0f;
float y1 = static_cast<float>(context.get_height()) / 2.0f - 200.0f;
float width = 400.0f;
float height = 200.0f;
context.color().draw_filled_rect(Rectf(Vector(x1, y1),
Sizef(width, height)),
Color(0.6f, 0.7f, 0.8f, 0.5f), LAYER_GUI - 1);
float y = y1;
bool linesLeft = false;
for (size_t i = firstline; i < lines.size(); ++i) {
if (y >= y1 + height) {
linesLeft = true;
break;
}
lines[i]->draw(context, Rectf(x1, y, x1+width, y), LAYER_GUI);
y += lines[i]->get_height();
}
{
// draw the scrolling arrows
if (arrow_scrollup.get() && firstline > 0)
context.color().draw_surface(arrow_scrollup,
Vector(x1 + width - static_cast<float>(arrow_scrollup->get_width()), // top-right corner of box
y1), LAYER_GUI);
if (arrow_scrolldown.get() && linesLeft && firstline < lines.size()-1)
context.color().draw_surface(arrow_scrolldown,
Vector(x1 + width - static_cast<float>(arrow_scrolldown->get_width()), // bottom-light corner of box
y1 + height - static_cast<float>(arrow_scrolldown->get_height())),
LAYER_GUI);
}
}
示例13: Vector
void
EditorToolboxWidget::draw(DrawingContext& context)
{
//SCREEN_WIDTH SCREEN_HEIGHT
context.color().draw_filled_rect(Rectf(Vector(static_cast<float>(m_Xpos), 0),
Vector(static_cast<float>(context.get_width()),
static_cast<float>(context.get_height()))),
Color(0.9f, 0.9f, 1.0f, 0.6f),
0.0f, LAYER_GUI-10);
if (m_dragging) {
context.color().draw_filled_rect(selection_draw_rect(), Color(0.2f, 0.4f, 1.0f, 0.6f),
0.0f, LAYER_GUI+1);
}
if (m_hovered_item != HoveredItem::NONE)
{
context.color().draw_filled_rect(get_item_rect(m_hovered_item),
Color(0.9f, 0.9f, 1.0f, 0.6f),
0.0f, LAYER_GUI - 5);
}
context.color().draw_text(Resources::normal_font, _("Tilegroups"),
Vector(static_cast<float>(context.get_width()), 0),
ALIGN_RIGHT, LAYER_GUI, ColorScheme::Menu::default_color);
context.color().draw_text(Resources::normal_font, _("Objects"),
Vector(static_cast<float>(context.get_width()), 24),
ALIGN_RIGHT, LAYER_GUI, ColorScheme::Menu::default_color);
m_rubber->draw(context);
m_select_mode->draw(context);
m_move_mode->draw(context);
m_settings_mode->draw(context);
draw_tilegroup(context);
draw_objectgroup(context);
}
示例14: size_
// Draw the background and components
void
EditorScreen::draw(DrawingContext& gc)
{
// Black out screen
//gc.fill_screen(Color(255,0,255)); // FIXME: Could be removed for added speed
gui_manager->draw(gc);
if (show_help)
{
Size size_(640, 400);
gc.draw_fillrect(Rect(gc.get_width()/2 - size_.width/2 - 2,
gc.get_height()/2 - size_.height/2 - 2,
gc.get_width()/2 + size_.width/2 + 2,
gc.get_height()/2 + size_.height/2 + 2),
Color(0,0,0));
gc.draw_fillrect(Rect(gc.get_width()/2 - size_.width/2,
gc.get_height()/2 - size_.height/2,
gc.get_width()/2 + size_.width/2,
gc.get_height()/2 + size_.height/2),
Color(255,255,255));
gc.print_center(Fonts::verdana11,
Vector2i(gc.get_width()/2,
gc.get_height()/2 - size_.height/2 + 12),
_("== Editor Help =="));
int x = gc.get_width()/2 - size_.width/2 + 12;
int y = gc.get_height()/2 - size_.height/2 + 36;
gc.print_center(Fonts::verdana11, Vector2i(x + 75, y),
"A\n"
"Shift+A\n"
"PageUp, ], w\n"
"PageDown, [, s\n"
"Shift+PageUp\n"
"Shift+PageDown\n"
"R\n"
"Shift+R\n"
"G\n"
"Shift+G\n"
);
gc.print_left(Fonts::verdana11, Vector2i(x+150, y),
_("Select all\n"
"Clear Selection\n"
"Raise objects\n"
"Lower objects\n"
"Raise objects to top\n"
"Lower objects to bottom\n"
"Rotate 90 degree\n"
"Rotate 270 degree\n"
"Group selected objects\n"
"Ungroup selected objects\n"));
x = int(gc.get_width()/2 + 12);
y = int(gc.get_height()/2) - size_.height/2 + 36;
gc.print_center(Fonts::verdana11, Vector2i(x + 50, y),
"F\n"
"Shift+F\n"
"Delete, Backspace\n"
"I, K, J, L\n"
"Shift+I, K, J, L\n"
"B, Shift+B\n"
"=, +, -\n");
gc.print_left(Fonts::verdana11, Vector2i(x + 125, y),
_("Flip object horizontaly\n"
"Flip object vertically\n"
"Delete all marked objects\n"
"Move objects by one pixel\n"
"Move objects by 32 pixel\n"
"Toggle background color\n"
"Increase/lower repeat\n"));
gc.print_left(Fonts::verdana11,
Vector2i(gc.get_width()/2 - size_.width/2 + 12,
gc.get_height()/2 - 10),
_("You should name your level files systematically, i.e. by their theme, "
"their number and your nickname:\n\n"
" <levelname><number>-<creator>.pingus\n\n"
"So if you create your second level with a stone theme, call it: "
"stone2-yourname.pingus\n\n"
"When you have created a level and want to have it included "
"in the game mail it to:\n\n"
" [email protected]\n\n"
"Only levels published under the GPL are allowed into the game. The editor "
"automatically inserts a reference \n"
"to the GPL, if you want to have your level under a different license, you "
"have to change that reference.\n"
));
}
}
示例15: if
void
ResultScreenComponent::draw(DrawingContext& gc)
{
// Paint the background wood panel
for(int y = 0; y < gc.get_height(); y += background.get_height())
for(int x = 0; x < gc.get_width(); x += background.get_width())
gc.draw(background, Vector2i(x, y));
gc.draw(blackboard, Vector2i(gc.get_width()/2, gc.get_height()/2));
gc.print_center(Fonts::chalk_large,
Vector2i(gc.get_width()/2,
Display::get_height()/2 - 200),
_(result.plf.get_levelname()));
if (result.success())
{
gc.print_center(Fonts::chalk_large,
Vector2i(gc.get_width()/2,
Display::get_height()/2 - 140),
_("Success!"));
/*gc.print_center(Fonts::pingus_small, gc.get_width()/2, gc.get_height()-30,
"..:: Press Space to continue ::..");*/
}
else
{
gc.print_center(Fonts::chalk_large,
Vector2i(gc.get_width()/2, Display::get_height()/2 - 140),
_("Failure!"));
/*gc.print_center(Fonts::pingus_normal, gc.get_width()/2, gc.get_height()-30,
"..:: Press Space to retry the level ::..");*/
}
std::string message;
if (result.success())
{
if (result.killed == 0 && result.saved == result.total)
message = _("Perfect! You saved everyone possible - great!");
else if (result.killed == 0)
message = _("No-one got killed, pretty good work.");
else if (result.saved == result.needed)
message = _("You saved exactly what you needed - you made it, but\n"
"maybe you can do better?");
else if (result.killed >= 5)
message = _("Not everybody was saved, but still good work!");
else
message = _("What can I say, you made it - congratulations!");
}
else
{
if (result.killed == result.total)
message = _("You killed everybody, not good.");
else if (result.saved == 0)
message = _("No-one got saved - I know you can do better.");
else if (result.saved > 0)
message = _("You didn't save enough, but you saved a few. Next\n"
"time you might do better.");
else if (result.saved + 1 >= result.needed)
message = _("Only one more and you would have made it - try again!");
else if (result.saved + 5 >= result.needed)
message = _("Only a handful more and you would have made it - try again!");
else
message = _("Better luck next time!");
}
gc.print_center(Fonts::chalk_normal, Vector2i(gc.get_width()/2, gc.get_height()/2 - 70), message);
int left_x = gc.get_width()/2 - 100;
int right_x = gc.get_width()/2 + 100;
int y = Display::get_height()/2 + 10;
gc.print_left(Fonts::chalk_normal, Vector2i(left_x, y), _("Saved: "));
gc.print_right(Fonts::chalk_normal, Vector2i(right_x, y), StringUtil::to_string(result.saved)
+ "/" + StringUtil::to_string(result.needed));;
gc.print_left(Fonts::chalk_normal, Vector2i(left_x, (y+=30)), _("Died: "));
gc.print_right(Fonts::chalk_normal, Vector2i(right_x, y), StringUtil::to_string(result.killed));
gc.print_left(Fonts::chalk_normal, Vector2i(left_x, (y+=30)), _("Time left: "));
gc.print_right(Fonts::chalk_normal, Vector2i(right_x, y), time_str);
}