shading of labels now dependent on the font size
parent
7fddb0848d
commit
8954cf0db0
|
@ -794,7 +794,7 @@ void Model::OnKillEntity (const Engine::EntityBase *entity) {
|
||||||
const AsteroidEntity *asteroid = static_cast<const AsteroidEntity*>(entity);
|
const AsteroidEntity *asteroid = static_cast<const AsteroidEntity*>(entity);
|
||||||
|
|
||||||
if (GetPlayerEntityId() != Engine::NullEntityId) {
|
if (GetPlayerEntityId() != Engine::NullEntityId) {
|
||||||
mLevelPoints += 150 + asteroid->mSubAsteroidsCount * 75;
|
mLevelPoints += (150 + asteroid->mSubAsteroidsCount * 75) * 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < mAsteroids.size(); i++) {
|
for (i = 0; i < mAsteroids.size(); i++) {
|
||||||
|
|
|
@ -583,10 +583,40 @@ void View::DrawUiGameOver() {
|
||||||
SelectFont("console.ttf size=23 color=#ffffff");
|
SelectFont("console.ttf size=23 color=#ffffff");
|
||||||
|
|
||||||
if (GetModel()->GetPlayerLives() == 0) {
|
if (GetModel()->GetPlayerLives() == 0) {
|
||||||
|
int text_xpos = screen_right * 0.5,
|
||||||
|
text_ypos = screen_bottom * 0.5 - 64;
|
||||||
|
|
||||||
Engine::GUI::LabelCentered(5,
|
Engine::GUI::LabelCentered(5,
|
||||||
"That was pathetic!",
|
"That was pathetic!",
|
||||||
screen_right * 0.5,
|
text_xpos,
|
||||||
screen_bottom * 0.5 - 8);
|
text_ypos);
|
||||||
|
|
||||||
|
const static int value_width = 10;
|
||||||
|
|
||||||
|
text_ypos += 64;
|
||||||
|
|
||||||
|
// ----- New Score -----
|
||||||
|
unsigned int player_points = GetModel()->GetPoints();
|
||||||
|
|
||||||
|
Engine::GUI::Label (1, "At least you made a score of:",
|
||||||
|
text_xpos, text_ypos + 3
|
||||||
|
);
|
||||||
|
|
||||||
|
text_ypos += 32;
|
||||||
|
|
||||||
|
stringstream temp_stream;
|
||||||
|
temp_stream.str("");
|
||||||
|
|
||||||
|
temp_stream << setw(value_width) << player_points;
|
||||||
|
Engine::GUI::Label (1, temp_stream.str().c_str(),
|
||||||
|
text_xpos, text_ypos + 3
|
||||||
|
);
|
||||||
|
|
||||||
|
text_ypos += 64;
|
||||||
|
Engine::GUI::Label (1, "Play harder!",
|
||||||
|
text_xpos, text_ypos + 3
|
||||||
|
);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Engine::GUI::LabelCentered (6, "You earned yourself the",
|
Engine::GUI::LabelCentered (6, "You earned yourself the",
|
||||||
screen_right * 0.5,
|
screen_right * 0.5,
|
||||||
|
@ -667,28 +697,11 @@ void View::DrawUiLevelIntro() {
|
||||||
level_title_dest_x - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_x - 2,
|
level_title_dest_x - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_x - 2,
|
||||||
level_title_dest_y - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_y + 2 + 40
|
level_title_dest_y - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_y + 2 + 40
|
||||||
);
|
);
|
||||||
|
|
||||||
SelectFont("console.ttf size=46 color=#ffffff");
|
|
||||||
Engine::GUI::LabelCentered (22, first_line.c_str(),
|
|
||||||
level_title_dest_x - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_x,
|
|
||||||
level_title_dest_y - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_y
|
|
||||||
);
|
|
||||||
|
|
||||||
Engine::GUI::LabelCentered (22, second_line.c_str(),
|
|
||||||
level_title_dest_x - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_x,
|
|
||||||
level_title_dest_y - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_y + 40
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
Engine::GUI::LabelCentered (21, level_title.c_str(),
|
Engine::GUI::LabelCentered (21, level_title.c_str(),
|
||||||
level_title_dest_x - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_x - 2,
|
level_title_dest_x - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_x - 2,
|
||||||
level_title_dest_y - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_y + 2
|
level_title_dest_y - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_y + 2
|
||||||
);
|
);
|
||||||
|
|
||||||
SelectFont("console.ttf size=46 color=#ffffff");
|
|
||||||
Engine::GUI::LabelCentered (22, level_title.c_str(),
|
|
||||||
level_title_dest_x - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_x,
|
|
||||||
level_title_dest_y - Engine::GetTimer("LevelIntroLevelTitle") * level_title_delta_y
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SelectFont ("console.ttf size=23");
|
SelectFont ("console.ttf size=23");
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
#include "DrawingsGL.h"
|
#include "DrawingsGL.h"
|
||||||
#include "keytable.h"
|
#include "keytable.h"
|
||||||
|
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
Engine::ControllerBase *controller = NULL;
|
Engine::ControllerBase *controller = NULL;
|
||||||
Engine::ViewBase *view = NULL;
|
Engine::ViewBase *view = NULL;
|
||||||
|
|
||||||
|
@ -129,9 +131,17 @@ void Label (int id, const char* caption, int x, int y) {
|
||||||
|
|
||||||
view->DrawGLStringMeasure(caption, &width, &height);
|
view->DrawGLStringMeasure(caption, &width, &height);
|
||||||
|
|
||||||
SelectFont("console.ttf size=23 color=#808080");
|
std::stringstream font_spec("");
|
||||||
view->DrawGLString(x - 1 , y + height * 0.5 + 1, caption);
|
float font_size = view->GetCurrentFontSize();
|
||||||
SelectFont("console.ttf size=23 color=#ffffff");
|
|
||||||
|
// we shift the gray a little left and up depending on the font size
|
||||||
|
font_spec << "console.ttf size=" << font_size << " color=#808080";
|
||||||
|
SelectFont(font_spec.str().c_str());
|
||||||
|
view->DrawGLString(x - font_size / 20.f , y + height * 0.5 + font_size / 20.f, caption);
|
||||||
|
|
||||||
|
font_spec.str("");
|
||||||
|
font_spec << "console.ttf size=" << font_size << " color=#ffffff";
|
||||||
|
SelectFont(font_spec.str().c_str());
|
||||||
view->DrawGLString(x , y + height * 0.5, caption);
|
view->DrawGLString(x , y + height * 0.5, caption);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -154,6 +164,18 @@ void LabelCentered (int id, const char* caption, int x, int y) {
|
||||||
view->DrawGLStringMeasure(caption, &width, &height);
|
view->DrawGLStringMeasure(caption, &width, &height);
|
||||||
height = fabs (height);
|
height = fabs (height);
|
||||||
width = fabs (width);
|
width = fabs (width);
|
||||||
|
|
||||||
|
std::stringstream font_spec("");
|
||||||
|
float font_size = view->GetCurrentFontSize();
|
||||||
|
|
||||||
|
// we shift the gray a little left and up depending on the font size
|
||||||
|
font_spec << "console.ttf size=" << font_size << " color=#808080";
|
||||||
|
SelectFont(font_spec.str().c_str());
|
||||||
|
view->DrawGLString(x - 0.5 * width - font_size / 20.f , y + height * 0.5 + font_size / 20.f, caption);
|
||||||
|
|
||||||
|
font_spec.str("");
|
||||||
|
font_spec << "console.ttf size=" << font_size << " color=#ffffff";
|
||||||
|
SelectFont(font_spec.str().c_str());
|
||||||
view->DrawGLString(x - 0.5 * width, y + height * 0.5, caption);
|
view->DrawGLString(x - 0.5 * width, y + height * 0.5, caption);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -350,6 +350,15 @@ void ViewBase::SelectFont (const char *font) {
|
||||||
LogError("Error trying to load font %s", font);
|
LogError("Error trying to load font %s", font);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float ViewBase::GetCurrentFontSize() {
|
||||||
|
if (mCurrentFont == NULL) {
|
||||||
|
LogError ("Could not get current font size: no font selected!");
|
||||||
|
return 0.;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mCurrentFont->pointSize();
|
||||||
|
}
|
||||||
|
|
||||||
void ViewBase::SetFontJustification (FontJustification justification) {
|
void ViewBase::SetFontJustification (FontJustification justification) {
|
||||||
assert (mCurrentFont != NULL);
|
assert (mCurrentFont != NULL);
|
||||||
|
|
||||||
|
@ -358,7 +367,6 @@ void ViewBase::SetFontJustification (FontJustification justification) {
|
||||||
else if (justification == FontJustificationCenter)
|
else if (justification == FontJustificationCenter)
|
||||||
mCurrentFont->setHorizontalJustification(OGLFT::Face::CENTER);
|
mCurrentFont->setHorizontalJustification(OGLFT::Face::CENTER);
|
||||||
else mCurrentFont->setHorizontalJustification(OGLFT::Face::LEFT);
|
else mCurrentFont->setHorizontalJustification(OGLFT::Face::LEFT);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ViewBase::DrawGLString (float x, float y, const char* str) {
|
void ViewBase::DrawGLString (float x, float y, const char* str) {
|
||||||
|
@ -512,6 +520,14 @@ void SetFontJustification (FontJustification justification) {
|
||||||
ViewInstance->SetFontJustification (justification);
|
ViewInstance->SetFontJustification (justification);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float GetCurrentFontSize() {
|
||||||
|
if (!ViewInstance) {
|
||||||
|
LogError ("Cannot get font size: View not yet initialized!");
|
||||||
|
return 0.;
|
||||||
|
}
|
||||||
|
return ViewInstance->GetCurrentFontSize();
|
||||||
|
}
|
||||||
|
|
||||||
unsigned int GetWindowWidth() {
|
unsigned int GetWindowWidth() {
|
||||||
return ViewInstance->GetWindowWidth ();
|
return ViewInstance->GetWindowWidth ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ class ViewBase : public Module{
|
||||||
* Default size is 12 and default color is white (#ffffff).
|
* Default size is 12 and default color is white (#ffffff).
|
||||||
*/
|
*/
|
||||||
void SelectFont (const char *font_spec);
|
void SelectFont (const char *font_spec);
|
||||||
|
float GetCurrentFontSize();
|
||||||
void SetFontJustification (FontJustification justification);
|
void SetFontJustification (FontJustification justification);
|
||||||
|
|
||||||
/** \brief Draws a string at the given position using current projection
|
/** \brief Draws a string at the given position using current projection
|
||||||
|
@ -125,7 +126,6 @@ class ViewBase : public Module{
|
||||||
/** \brief The width of the screen in pixels */
|
/** \brief The width of the screen in pixels */
|
||||||
unsigned int mScreenWidth;
|
unsigned int mScreenWidth;
|
||||||
|
|
||||||
|
|
||||||
/** \brief Stores the current frame rate */
|
/** \brief Stores the current frame rate */
|
||||||
int mFrameRate;
|
int mFrameRate;
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ namespace Engine {
|
||||||
void DrawGLString (float x, float y, const char* str);
|
void DrawGLString (float x, float y, const char* str);
|
||||||
void SelectFont (const char* font);
|
void SelectFont (const char* font);
|
||||||
void SetFontJustification (FontJustification justification);
|
void SetFontJustification (FontJustification justification);
|
||||||
|
float GetCurrentFontSize();
|
||||||
|
|
||||||
unsigned int GetWindowWidth();
|
unsigned int GetWindowWidth();
|
||||||
unsigned int GetWindowHeight();
|
unsigned int GetWindowHeight();
|
||||||
|
|
Loading…
Reference in New Issue