Hey !
Ich bin relativ neu in der Spieleentwicklung und habe das Buch C++ für Spieleprogrammierer fertig durchgearbeitet.
Ich bin gerade dabei, ein Menü für das Spiel zu schreiben.
Mein Problem dabei ist, dass ich es nicht schaffe, z.B. in den Menüpunkt Optionen, einen Text hineinzurendern,
der z.B. sagt, welches Level ausgewählt ist.
Ich poste mal meinen Code für das Menü:
|
C-/C++-Quelltext
|
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
|
Menue.hpp:
#ifndef MENUE_HPP
#define MENUE_HPP
#include "Sprite.hpp"
#define MenueStart 1
#define MenueOption 2
#define MenueHighscore 3
#define MenueQuit 4
class CMenue
{
public:
CMenue();
void Init();
void Update();
void Quit();
void RenderText(const char Text);
int GetSelected() { return (m_MenueSelected);}
bool GetOpened() { return (m_bOpen); }
bool IsClicked() { return (m_bMenueIsClicked); }
void SetClicked(bool bStatus) {m_bMenueIsClicked = bStatus; }
void SetOpened(bool bStatus) { m_bOpen = bStatus; }
private:
void MenueSelection();
void Load(int Menue_ID);
void Render();
CSprite *m_pSpriteMenue; //Sprite des Menues
SDL_Surface *m_SurText; //Surface für einen Text
bool m_bOpen; //Menü geöffnet?
bool m_bMenueIsClicked; // Ist das Menü angeklickt worden?
int m_MenueSelected; //Welches Menü angewählt wurde
};
#endif
|
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
Menue.cpp:
//Funktion zum Rendern eines Textes
void CMenue::RenderText(const char Text)
{
TTF_Font *Font;
SDL_Color txtColor;
Font = TTF_OpenFont("Data/Font/arsis.ttf",sizeof(Font));
txtColor.r = 0;
txtColor.g = 0;
txtColor.b = 0;
SDL_Rect Text_Pos;
Text_Pos.x = 10;
Text_Pos.y = 10;
m_SurText = TTF_RenderText_Solid(Font,&Text,txtColor);
SDL_BlitSurface(m_SurText,NULL,g_pFramework->GetSurface(),&Text_Pos);
SDL_FreeSurface(m_SurText);
}
|
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
main.cpp:
#include "Framework.hpp"
#include "Game.hpp"
#include "Menue.hpp"
int main (int argc, char *argv[])
{
//Framework initialisieren
if( g_pFramework -> Init(800,600,16,false) == false)
return (0);
CMenue *p_Menue;
p_Menue -> Init();
p_Menue ->RenderText("Hallo");
g_pFramework -> Flip();
delete(p_Menue);
//Framework herunterfahren
g_pFramework -> Quit();
g_pFramework -> Del(); //Zeiger auf Instanz löschen
}
|
--> Mein Problem:
Ich kann damit keinen Text rendern.
|
C-/C++-Quelltext
|
1
2
|
c:\dokumente und einstellungen\johannes\eigene dateien\c++ für spieleprogrammierer\selbst erstellt\sdl_game\main.cpp(27) : error C2664: 'CMenue::RenderText': Konvertierung des Parameters 1 von 'const char [6]' in 'const char' nicht möglich
Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
|
Bin über eure Hilfe sehr dankbar !!!
Liebe Grüße
Ombalat