本文整理汇总了C++中WidgetLabel::render方法的典型用法代码示例。如果您正苦于以下问题:C++ WidgetLabel::render方法的具体用法?C++ WidgetLabel::render怎么用?C++ WidgetLabel::render使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WidgetLabel
的用法示例。
在下文中一共展示了WidgetLabel::render方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render
void MenuVendor::render() {
if (!visible) return;
SDL_Rect src;
SDL_Rect dest;
int offset_y = (VIEW_H - 416)/2;
// background
src.x = 0;
src.y = 0;
dest.x = 0;
dest.y = offset_y;
src.w = dest.w = 320;
src.h = dest.h = 416;
SDL_BlitSurface(background, &src, screen, &dest);
// close button
closeButton->render();
// text overlay
WidgetLabel label;
label.set(160, offset_y+8, JUSTIFY_CENTER, VALIGN_TOP, msg->get("Vendor"), FONT_WHITE);
label.render();
label.set(160, offset_y+24, JUSTIFY_CENTER, VALIGN_TOP, npc->name, FONT_WHITE);
label.render();
// show stock
stock.render();
}
示例2: render
void MenuStash::render() {
if (!visible) return;
SDL_Rect src;
SDL_Rect dest;
// background
src.x = 0;
src.y = 0;
dest.x = window_area.x;
dest.y = window_area.y;
src.w = dest.w = window_area.w;
src.h = dest.h = window_area.h;
SDL_BlitSurface(background, &src, screen, &dest);
// close button
closeButton->render();
// text overlay
WidgetLabel label;
if (!title.hidden) {
label.set(window_area.x+title.x, window_area.y+title.y, title.justify, title.valign, msg->get("Shared Stash"), color_normal, title.font_style);
label.render();
}
if (!currency.hidden) {
label.set(window_area.x+currency.x, window_area.y+currency.y, currency.justify, currency.valign, msg->get("%d %s", stock.count(CURRENCY_ID), CURRENCY), color_normal, currency.font_style);
label.render();
}
// show stock
stock.render();
}
示例3: render
void MenuEnemy::render() {
if (enemy == NULL) return;
if (enemy->stats.corpse && enemy->stats.corpse_ticks == 0) return;
SDL_Rect src;
SDL_Rect dest;
int hp_bar_length;
// draw trim/background
dest.x = window_area.x+bar_pos.x;
dest.y = window_area.y+bar_pos.y;
dest.w = bar_pos.w;
dest.h = bar_pos.h;
background.setDest(dest);
render_device->render(background);
if (enemy->stats.get(STAT_HP_MAX) == 0)
hp_bar_length = 0;
else
hp_bar_length = (enemy->stats.hp * 100) / enemy->stats.get(STAT_HP_MAX);
// draw hp bar
src.x = 0;
src.y = 0;
src.h = bar_pos.h;
src.w = hp_bar_length;
bar_hp.setClip(src);
bar_hp.setDest(dest);
render_device->render(bar_hp);
stringstream ss;
ss.str("");
if (enemy->stats.hp > 0)
ss << enemy->stats.hp << "/" << enemy->stats.get(STAT_HP_MAX);
else
ss << msg->get("Dead");
if (!text_pos.hidden) {
WidgetLabel label;
if (custom_text_pos) {
label.set(window_area.x+text_pos.x, window_area.y+text_pos.y, text_pos.justify, text_pos.valign, msg->get("%s level %d", enemy->stats.level, enemy->stats.name), color_normal, text_pos.font_style);
}
else {
label.set(window_area.x+bar_pos.x+bar_pos.w/2, window_area.y+bar_pos.y, JUSTIFY_CENTER, VALIGN_BOTTOM, msg->get("%s level %d", enemy->stats.level, enemy->stats.name), color_normal);
}
label.render();
label.set(window_area.x+bar_pos.x+bar_pos.w/2, window_area.y+bar_pos.y+bar_pos.h/2, JUSTIFY_CENTER, VALIGN_CENTER, ss.str(), color_normal);
label.render();
}
//SDL_UpdateRects(screen, 1, &dest);
}
示例4: render
void MenuEnemy::render() {
if (enemy == NULL) return;
SDL_Rect src;
SDL_Rect dest;
int hp_bar_length;
// draw trim/background
dest.x = VIEW_W_HALF-53;
dest.y = 0;
dest.w = 106;
dest.h = 33;
SDL_BlitSurface(background, NULL, screen, &dest);
if (enemy->stats.maxhp == 0)
hp_bar_length = 0;
else
hp_bar_length = (enemy->stats.hp * 100) / enemy->stats.maxhp;
// draw hp bar
dest.x = VIEW_W_HALF-50;
dest.y = 18;
src.x = 0;
src.y = 0;
src.h = 12;
src.w = hp_bar_length;
SDL_BlitSurface(bar_hp, &src, screen, &dest);
stringstream ss;
ss.str("");
if (enemy->stats.hp > 0)
ss << enemy->stats.hp << "/" << enemy->stats.maxhp;
else
ss << msg->get("Dead");
WidgetLabel label;
label.set(VIEW_W_HALF, 9, JUSTIFY_CENTER, VALIGN_CENTER, msg->get("%s level %d", enemy->stats.level, enemy->stats.name), FONT_WHITE);
label.render();
label.set(VIEW_W_HALF, 24, JUSTIFY_CENTER, VALIGN_CENTER, ss.str(), FONT_WHITE);
label.render();
//SDL_UpdateRects(screen, 1, &dest);
}
示例5: render
void MenuVendor::render() {
if (!visible) return;
SDL_Rect src;
SDL_Rect dest;
// background
src.x = 0;
src.y = 0;
dest.x = window_area.x;
dest.y = window_area.y;
src.w = dest.w = window_area.w;
src.h = dest.h = window_area.h;
SDL_BlitSurface(background, &src, screen, &dest);
// close button
closeButton->render();
// text overlay
if (!title.hidden) {
WidgetLabel label;
label.set(window_area.x+title.x, window_area.y+title.y, title.justify, title.valign, msg->get("Vendor") + " - " + npc->name, color_normal, title.font_style);
label.render();
}
// render tabs
tabControl->render();
// show stock
stock[activetab].render();
}
示例6: renderIcon
/**
* Renders icons at small size or large size
* Also display the stack size
*/
void ItemManager::renderIcon(ItemStack stack, int x, int y, int size) {
if (!icons) return;
SDL_Rect src, dest;
dest.x = x;
dest.y = y;
src.w = src.h = dest.w = dest.h = size;
if (stack.item > 0) {
int columns = icons->w / ICON_SIZE;
src.x = (items[stack.item].icon % columns) * size;
src.y = (items[stack.item].icon / columns) * size;
SDL_BlitSurface(icons, &src, screen, &dest);
}
if (stack.quantity > 1 || items[stack.item].max_quantity > 1) {
// stackable item : show the quantity
stringstream ss;
ss << stack.quantity;
WidgetLabel label;
label.set(dest.x + 2, dest.y + 2, JUSTIFY_LEFT, VALIGN_TOP, ss.str(), color_normal);
label.render();
}
}
示例7: renderIcon
/**
* Renders icons at 32px size or 64px size
* Also display the stack size
*/
void ItemManager::renderIcon(ItemStack stack, int x, int y, int size) {
int columns;
dest.x = x;
dest.y = y;
src.w = src.h = dest.w = dest.h = size;
if (size == ICON_SIZE_32) {
columns = icons32->w / 32;
src.x = (items[stack.item].icon32 % columns) * size;
src.y = (items[stack.item].icon32 / columns) * size;
SDL_BlitSurface(icons32, &src, screen, &dest);
}
else if (size == ICON_SIZE_64) {
columns = icons64->w / 64;
src.x = (items[stack.item].icon64 % columns) * size;
src.y = (items[stack.item].icon64 / columns) * size;
SDL_BlitSurface(icons64, &src, screen, &dest);
}
if( stack.quantity > 1 || items[stack.item].max_quantity > 1) {
// stackable item : show the quantity
stringstream ss;
ss << stack.quantity;
WidgetLabel label;
label.set(dest.x + 2, dest.y + 2, JUSTIFY_LEFT, VALIGN_TOP, ss.str(), FONT_WHITE);
label.render();
}
}
示例8: render
void MenuStash::render() {
if (!visible) return;
SDL_Rect src;
SDL_Rect dest;
// background
src.x = 0;
src.y = 0;
dest.x = window_area.x;
dest.y = window_area.y;
src.w = dest.w = window_area.w;
src.h = dest.h = window_area.h;
SDL_BlitSurface(background, &src, screen, &dest);
// close button
closeButton->render();
// text overlay
if (!title.hidden) {
WidgetLabel label;
label.set(window_area.x+title.x, window_area.y+title.y, title.justify, title.valign, msg->get("Shared Stash"), color_normal);
label.render();
}
// show stock
stock.render();
}
示例9: render
void WidgetSlot::render() {
SDL_Rect src;
if (icon_id != -1 && !icons.graphicsIsNull()) {
int columns = icons.getGraphicsWidth() / ICON_SIZE;
src.x = (icon_id % columns) * ICON_SIZE;
src.y = (icon_id / columns) * ICON_SIZE;
src.w = pos.w;
src.h = pos.h;
icons.local_frame = local_frame;
icons.setOffset(local_offset);
icons.setClip(src);
icons.setDest(pos);
render_device->render(icons);
if (amount > 1 || max_amount > 1) {
stringstream ss;
ss << amount_str;
WidgetLabel label;
label.set(pos.x + 2, pos.y + 2, JUSTIFY_LEFT, VALIGN_TOP, ss.str(), font->getColor("item_normal"));
label.local_frame = local_frame;
label.local_offset = local_offset;
label.render();
}
}
renderSelection();
}
示例10: render
void MenuInventory::render() {
if (!visible) return;
SDL_Rect src;
// background
src.x = 0;
src.y = 0;
src.w = window_area.w;
src.h = window_area.h;
SDL_BlitSurface(background, &src, screen, &window_area);
// close button
closeButton->render();
// text overlay
WidgetLabel label;
label.set(window_area.x+160, window_area.y+8, JUSTIFY_CENTER, VALIGN_TOP, msg->get("Inventory"), FONT_WHITE);
label.render();
label.set(window_area.x+64, window_area.y+34, JUSTIFY_CENTER, VALIGN_TOP, msg->get("Main Hand"), FONT_WHITE);
label.render();
label.set(window_area.x+128, window_area.y+34, JUSTIFY_CENTER, VALIGN_TOP, msg->get("Body"), FONT_WHITE);
label.render();
label.set(window_area.x+192, window_area.y+34, JUSTIFY_CENTER, VALIGN_TOP, msg->get("Off Hand"), FONT_WHITE);
label.render();
label.set(window_area.x+256, window_area.y+34, JUSTIFY_CENTER, VALIGN_TOP, msg->get("Artifact"), FONT_WHITE);
label.render();
label.set(window_area.x+288, window_area.y+114, JUSTIFY_RIGHT, VALIGN_TOP, msg->get("%d Gold", gold), FONT_WHITE);
label.render();
inventory[EQUIPMENT].render();
inventory[CARRIED].render();
}
示例11: render
/**
* Display the XP bar background and current progress.
* On mouseover, display progress in text form.
*/
void MenuExperience::render(StatBlock *stats, Point mouse) {
SDL_Rect src;
SDL_Rect dest;
int xp_bar_length;
// don't display anything if max level
if (stats->level < 1 || stats->level == MAX_CHARACTER_LEVEL) return;
// lay down the background image first
src.x = 0;
src.y = 0;
src.w = background_size.x;
src.h = background_size.y;
dest.x = hud_position.x + background_offset.x;
dest.y = hud_position.y + background_offset.y;
SDL_BlitSurface(background, &src, screen, &dest);
// calculate the length of the xp bar
// when at a new level, 0% progress
src.x = 0;
src.y = 0;
int required = stats->xp_table[stats->level] - stats->xp_table[stats->level-1];
int current = stats->xp - stats->xp_table[stats->level-1];
xp_bar_length = (current * bar_size.x) / required;
src.w = xp_bar_length;
src.h = bar_size.y;
dest.x = hud_position.x + bar_offset.x;
dest.y = hud_position.y + bar_offset.y;
// draw xp bar
SDL_BlitSurface(bar, &src, screen, &dest);
string text_label;
// if mouseover, draw text
if (isWithin(hud_position, mouse)) {
if (stats->level < MAX_CHARACTER_LEVEL) {
text_label = msg->get("XP: %d/%d", stats->xp, stats->xp_table[stats->level]);
}
else {
text_label = msg->get("XP: %d", stats->xp);
}
WidgetLabel label;
label.set(hud_position.x + text_offset.x, hud_position.y + text_offset.y, text_justify, VALIGN_TOP, text_label, FONT_WHITE);
label.render();
}
}
示例12: render
/**
* Render graphics for this frame when the menu is open
*/
void MenuLog::render() {
if (!visible) return;
SDL_Rect src;
// background
src.x = 0;
src.y = 0;
src.w = menu_area.w;
src.h = menu_area.h;
SDL_BlitSurface(background, &src, screen, &menu_area);
// close button
closeButton->render();
// text overlay
WidgetLabel label;
label.set(menu_area.x+160, menu_area.y+8, JUSTIFY_CENTER, VALIGN_TOP, msg->get("Log"), FONT_WHITE);
label.render();
// display tabs
for (int i=0; i<LOG_TYPE_COUNT; i++) {
renderTab(i);
}
// display latest log messages
Point size;
int display_number = 0;
int total_size = 0;
// first calculate how many entire messages can fit in the log view
for (int i=log_count[active_log]-1; i>=0; i--) {
size = font->calc_size(log_msg[active_log][i], list_area.w);
total_size += size.y + paragraph_spacing;
if (total_size < list_area.h) display_number++;
else break;
}
// now display these messages
int cursor_y = list_area.y;
for (int i=log_count[active_log]-display_number; i<log_count[active_log]; i++) {
size = font->calc_size(log_msg[active_log][i], list_area.w);
font->renderShadowed(log_msg[active_log][i], list_area.x, cursor_y, JUSTIFY_LEFT, screen, list_area.w, FONT_WHITE);
cursor_y += size.y + paragraph_spacing;
}
}
示例13: renderItemCounts
/**
* For powers that have consumables, display the number of consumables remaining
*/
void MenuActionBar::renderItemCounts() {
stringstream ss;
for (int i=0; i<12; i++) {
if (slot_item_count[i] > -1) {
ss.str("");
ss << slot_item_count[i];
WidgetLabel label;
label.set(slots[i].x, slots[i].y, JUSTIFY_LEFT, VALIGN_TOP, ss.str(), font->getColor("menu_normal"));
label.render();
}
}
}
示例14: render
void MenuInventory::render() {
if (!visible) return;
// background
SDL_Rect dest = window_area;
SDL_BlitSurface(background, NULL, screen, &dest);
// close button
closeButton->render();
// text overlay
WidgetLabel label;
if (!title.hidden) {
label.set(window_area.x+title.x, window_area.y+title.y, title.justify, title.valign, msg->get("Inventory"), color_normal, title.font_style);
label.render();
}
if (!currency_lbl.hidden) {
label.set(window_area.x+currency_lbl.x, window_area.y+currency_lbl.y, currency_lbl.justify, currency_lbl.valign, msg->get("%d %s", currency, CURRENCY), color_normal, currency_lbl.font_style);
label.render();
}
inventory[EQUIPMENT].render();
inventory[CARRIED].render();
}
示例15: render
void MenuStash::render() {
if (!visible) return;
// background
Menu::render();
// close button
closeButton->render();
// text overlay
WidgetLabel label;
if (!title.hidden) {
label.set(window_area.x+title.x, window_area.y+title.y, title.justify, title.valign, msg->get("Shared Stash"), color_normal, title.font_style);
label.render();
}
if (!currency.hidden) {
label.set(window_area.x+currency.x, window_area.y+currency.y, currency.justify, currency.valign, msg->get("%d %s", stock.count(CURRENCY_ID), CURRENCY), color_normal, currency.font_style);
label.render();
}
// show stock
stock.render();
}