Change text over nodes to just be hit points

This commit is contained in:
Anna Rose 2011-07-01 22:23:16 -04:00
parent a2f36a447b
commit 2bdc7e0e59
3 changed files with 19 additions and 13 deletions

View File

@ -152,15 +152,16 @@ bool DrawUtils::transpare(SDL_Surface* surface, int r, int g, int b)
// Modified from // Modified from
// http://www.parallelrealities.co.uk/tutorials/basic/tutorial7.php // http://www.parallelrealities.co.uk/tutorials/basic/tutorial7.php
void DrawUtils::draw_text(SDL_Surface* display, string text, int x, int y, void DrawUtils::draw_text(SDL_Surface* display, string text, int x, int y,
TTF_Font *font) TTF_Font *font, unsigned int colour,
bool center_x, bool center_y)
{ {
SDL_Rect dest; SDL_Rect dest;
SDL_Surface *surface; SDL_Surface *surface;
SDL_Color color; SDL_Color color;
color.r = 0; color.r = (colour >> 16) & 0xff;
color.g = 0; color.g = (colour >> 8) & 0xff;
color.b = 0; color.b = colour & 0xff;
surface = TTF_RenderUTF8_Blended(font, text.c_str(), color); surface = TTF_RenderUTF8_Blended(font, text.c_str(), color);
@ -174,8 +175,8 @@ void DrawUtils::draw_text(SDL_Surface* display, string text, int x, int y,
} }
/* Blit the surface */ /* Blit the surface */
dest.x = x; dest.x = center_x ? x - (surface->w / 2) : x;
dest.y = y; dest.y = center_y ? y - (surface->h / 2) : y;
dest.w = surface->w; dest.w = surface->w;
dest.h = surface->h; dest.h = surface->h;

View File

@ -25,7 +25,8 @@ class DrawUtils
static void draw_circle_filled(SDL_Surface* dest, Sint16 x, Sint16 y, Uint16 r, Uint32 colour); static void draw_circle_filled(SDL_Surface* dest, Sint16 x, Sint16 y, Uint16 r, Uint32 colour);
static void draw_text(SDL_Surface* display, string text, int x, int y, static void draw_text(SDL_Surface* display, string text, int x, int y,
TTF_Font *font); TTF_Font *font, unsigned int colour = 0x000000,
bool center_x = false, bool center_y = false);
// transpare (v) - to make transparent // transpare (v) - to make transparent
// this function makes a particular color key on a surface transparent // this function makes a particular color key on a surface transparent

View File

@ -83,12 +83,6 @@ void Game::render()
Vertex* v = *cursor; Vertex* v = *cursor;
DrawUtils::draw_circle_filled(display, v->x, v->y, v->r, DrawUtils::draw_circle_filled(display, v->x, v->y, v->r,
v->colour); v->colour);
DrawUtils::draw_text(display,
"str " + itos(data.calculate_strength(v)),
v->x, v->y, font);
DrawUtils::draw_text(display, "hp " + itos(v->score),
v->x, v->y + 13, font);
for (list<Vertex*>::iterator subcursor = v->neighbors.begin(); for (list<Vertex*>::iterator subcursor = v->neighbors.begin();
subcursor != v->neighbors.end(); subcursor++) subcursor != v->neighbors.end(); subcursor++)
@ -99,6 +93,16 @@ void Game::render()
} }
} }
// Add hit points on top of the nodes
for (list<Vertex*>::iterator cursor = vertices.begin();
cursor != vertices.end(); cursor++)
{
Vertex* v = *cursor;
DrawUtils::draw_text(display, itos(v->score), v->x, v->y, font,
0x00ff00, true, true);
}
// Finally, ring the selected vertex and write info about it // Finally, ring the selected vertex and write info about it
if (data.get_current_vertex() != NULL) if (data.get_current_vertex() != NULL)
{ {