CharacterInfo::CharacterInfo(const AttributeData* attributes) { m_attributes = attributes; // init text std::string names = ""; names.append(g_textProvider->getText("Health") + ":\n"); names.append(g_textProvider->getText("HealthRegeneration") + ":\n"); names.append(g_textProvider->getText("CriticalHitChance") + ":\n"); names.append(g_textProvider->getText("Haste") + ":\n\n"); // dmg names.append(g_textProvider->getText("PhysicalDamage") + ":\n"); names.append(g_textProvider->getText("FireDamage") + ":\n"); names.append(g_textProvider->getText("IceDamage") + ":\n"); names.append(g_textProvider->getText("ShadowDamage") + ":\n"); names.append(g_textProvider->getText("LightDamage") + ":\n\n"); // resistance names.append(g_textProvider->getText("Armor") + ":\n"); names.append(g_textProvider->getText("FireResistance") + ":\n"); names.append(g_textProvider->getText("IceResistance") + ":\n"); names.append(g_textProvider->getText("ShadowResistance") + ":\n"); names.append(g_textProvider->getText("LightResistance") + ":\n"); m_namesText.setString(names); m_namesText.setCharacterSize(GUIConstants::CHARACTER_SIZE_M); m_namesText.setColor(COLOR_WHITE); m_attributeText.setString(""); m_attributeText.setCharacterSize(GUIConstants::CHARACTER_SIZE_M); m_attributeText.setColor(COLOR_LIGHT_PURPLE); m_title = BitmapText(g_textProvider->getText("CharacterInfo")); m_title.setCharacterSize(GUIConstants::CHARACTER_SIZE_M); m_title.setColor(COLOR_WHITE); float width = 3 * GUIConstants::TEXT_OFFSET + 2 * m_namesText.getLocalBounds().width; float height = 3 * GUIConstants::TEXT_OFFSET + m_title.getLocalBounds().height + m_namesText.getLocalBounds().height; m_title.setPosition(sf::Vector2f( GUIConstants::LEFT + ((width - m_title.getLocalBounds().width) / 2.f), GUIConstants::TOP + GUIConstants::TEXT_OFFSET)); m_namesText.setPosition(sf::Vector2f( GUIConstants::LEFT + GUIConstants::TEXT_OFFSET, m_title.getPosition().y + m_title.getLocalBounds().height + GUIConstants::TEXT_OFFSET)); m_attributeText.setPosition(sf::Vector2f( GUIConstants::LEFT + width / 2.f, m_title.getPosition().y + m_title.getLocalBounds().height + GUIConstants::TEXT_OFFSET)); // init window sf::FloatRect box(GUIConstants::LEFT, GUIConstants::TOP, width, height); m_window = new Window(box, WindowOrnamentStyle::FANCY, GUIConstants::MAIN_COLOR, GUIConstants::BACK_COLOR, GUIConstants::ORNAMENT_COLOR); m_window->addCloseButton(std::bind(&CharacterInfo::hide, this)); }
void Game::showFPSText(sf::RenderTarget& target, float frameTimeSeconds) { sf::View oldView = target.getView(); target.setView(target.getDefaultView()); m_fpsList.push_back(frameTimeSeconds); if (static_cast<int>(m_fpsList.size()) > FPS_AVERAGE_NR) { m_fpsList.pop_front(); } // calc average float sum = 0.f; for (float f : m_fpsList) { sum += f; } int fps = static_cast<int>(1.f / (sum / FPS_AVERAGE_NR)); BitmapText fpsText = BitmapText( "FPS: " + std::to_string(fps)); fpsText.setColor(COLOR_BAD); fpsText.setPosition(sf::Vector2f(1050.f, 10.f)); fpsText.setCharacterSize(16); target.draw(fpsText); target.setView(oldView); }
static void Redisplay(void) { static const GLfloat px[3] = { 1.2, 0, 0}; static const GLfloat nx[3] = {-1.2, 0, 0}; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); glRotatef(Xrot, 1.0f, 0.0f, 0.0f); glRotatef(Yrot, 0.0f, 1.0f, 0.0f); glEnable(GL_LIGHTING); glPushMatrix(); glScalef(0.5, 0.5, 0.5); glutSolidDodecahedron(); glPopMatrix(); glDisable(GL_LIGHTING); glColor3f(0, 1, 0); glBegin(GL_LINES); glVertex3f(-1, 0, 0); glVertex3f( 1, 0, 0); glEnd(); glColor3f(1, 1, 0); if (Bitmap) { glRasterPos3fv(px); BitmapText("+X"); glRasterPos3fv(nx); BitmapText("-X"); } else { glUseProgram(Program); /* vertex positions (deltas) depend on texture size and window size */ if (uScale != -1) { glUniform2f(uScale, 2.0 * TEX_WIDTH / WinWidth, 2.0 * TEX_HEIGHT / WinHeight); } /* draw +X */ glBindTexture(GL_TEXTURE_2D, Textures[0]); glBegin(GL_QUADS); glTexCoord2f(0, 0); glVertex3fv(px); glTexCoord2f(1, 0); glVertex3fv(px); glTexCoord2f(1, 1); glVertex3fv(px); glTexCoord2f(0, 1); glVertex3fv(px); glEnd(); /* draw -X */ glBindTexture(GL_TEXTURE_2D, Textures[1]); glBegin(GL_QUADS); glTexCoord2f(0, 0); glVertex3fv(nx); glTexCoord2f(1, 0); glVertex3fv(nx); glTexCoord2f(1, 1); glVertex3fv(nx); glTexCoord2f(0, 1); glVertex3fv(nx); glEnd(); glUseProgram(0); } glPopMatrix(); glutSwapBuffers(); }