1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#include <iostream>
#include <SDL_ttf.h>
#include <sstream>
#include "Font.hpp"
#include "Framework.hpp"
//Konstruktor
CFont::CFont()
{
//Initialisierung: SDL_ttf
if(TTF_Init() == -1 )
{
std::cout << "SDL_ttf konnte nicht initialisiert werden!" << std::endl;
std::cout << "Fehlermeldung:"<< SDL_GetError() << std::endl;
}
//Schriftart laden
m_font = nullptr;
m_font = TTF_OpenFont("Data\\FreeSans.ttf", 30);
if(!m_font)
{
std::cout << "Konnte Schriftart nicht laden!" << std::endl;
std::cout << "Fehlermeldung: " << TTF_GetError() << std::endl;
}
}
//Destruktor
CFont::~CFont()
{
// free the font
// TTF_Font *m_font;
TTF_CloseFont(m_font);
m_font = NULL; // to be safe...
}//Desktruktor
//zeichneText: Text auf das Surface schreiben
void CFont::zeichneText(char cText[], int xPos, int yPos, int R, int G, int B) //zu schreibender Text, x-Pos, y-Pos, R, G, B)
{
SDL_Color textColor = {R, G, B};
SDL_Surface *NewText;
NewText = TTF_RenderText_Solid (m_font, cText, textColor);
// [nach dem Zeichnen des Pinguins] Den Text ausgeben.
SDL_Rect textPosition;
textPosition.x = xPos;
textPosition.y = yPos;
SDL_BlitSurface(NewText, 0, g_pFramework->GetScreen (), &textPosition);
SDL_FreeSurface(NewText);
}//zeichneText
//zeichneNummer: Nummer auf das Surface schreiben
void CFont::zeichneVariable(int Nummer, int xPos, int yPos, int R, int G, int B) //zu schreibende Nummer, x-Pos, y-Pos, R, G, B)
{
SDL_Color textColor = {R, G, B};
SDL_Surface *NewText;
NewText = TTF_RenderText_Solid (m_font, convertInt(Nummer).c_str, textColor);
// [nach dem Zeichnen des Pinguins] Den Text ausgeben.
SDL_Rect textPosition;
textPosition.x = xPos;
textPosition.y = yPos;
SDL_BlitSurface(NewText, 0, g_pFramework->GetScreen (), &textPosition);
SDL_FreeSurface(NewText);
}//zeichneText
//convertInt: int in string umwandeln
std::string CFont::convertInt(int number)
{
std::stringstream ss;
ss << number;
return ss.str();
}
|