Hi,
ich hab immer gedacht Direct3D wird von der TBEngine initialisiert. auf jeden fall hab ich die Init funktion hier. Irgendwie bekomm ich des nmit der reihenfolge nicht gebacken das es funjktioniert. bie mir kommt da dann das folgende, aber der konfig dialog wird aufgerufen:
INFO: Initialisierung komplett! (TriBase.cpp, Zeile 101, Funktion (Unbekannt))
INFO: Der Konfigurationsdialog wird aufgerufen... (tbConfig.cpp, Zeile 1031, Funktion (Unbekannt))
FEHLER: Direct3D wurde noch nicht initialisiert! (tbTextureManager.cpp, Zeile 551, Funktion (Unbekannt))
FEHLER: Fehler beim Laden der Textur! (tbTextureManager.cpp, Zeile 1043, Funktion (Unbekannt))
FEHLER: Fehler beim Laden von Data\LoadScreen.jpg! (GalaxyQuest.cpp, Zeile 110, Funktion CGalaxyQuest::Init)
Meine Init Funktion
|
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
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
71
72
73
74
75
76
77
78
79
80
81
82
|
// __________________________________________________________________
// Initialisiert das Spiel komplett
tbResult CGalaxyQuest::Init()
{
/*
######################################################################
#
# Alles initialisieren
#
######################################################################
#
# Noch nicht fertig
#
######################################################################
*/
tbResult r;
// Alles zurücksetzen
ZeroMemory(this, sizeof(CGalaxyQuest));
// Die TriBase-Engine initialisieren und den Konfigurationsdialog aufrufen
if(tbInit()) return TB_ERROR;
r = tbDoConfigDialog(&m_Config);
if(r == TB_CANCELED) return TB_CANCELED;
else if(r) TB_ERROR("Engine konnte nicht initialisiert werden!", r);
// Klassen für alle Spielzustände erstellen
K_Menu = new CMenu;
K_Game = new CGame;
K_PausedGame = new CPausedGame;
// Bilder laden für LadeSchirm
pLoadScreen = tbTextureManager::GetTexture("Data\\LoadScreen.jpg");
if(pLoadScreen == NULL) TB_ERROR("Fehler beim Laden von Data\\LoadScreen.jpg!", TB_ERROR);
pBalken = tbTextureManager::GetTexture("Data\\Balken.jpg");
if(pBalken == NULL) TB_ERROR("Fehler beim Laden von Data\\Balken.jpg!", TB_ERROR);
// Font laden für LadeSchirm
pLoadFont = new tbFont;
if(pLoadFont->Init("Data\\LoadFont.tga", "Data\\LoadFont.tbf"))
{
// Fehler!
TB_ERROR("Fehler beim Laden der Schriftart Data\\LoadFont!", TB_ERROR);
}
// Anfang schaffen das überhaupt etwas gezeichnet werden kann
// Statusblock für Direct3D erstellen
tbDirect3D::GetDevice()->CreateStateBlock(D3DSBT_ALL, &m_pStateBlock);
// Texturmanager erstellen
if(tbTextureManager::Init())
{
// Fehler!
TB_ERROR("Texturmanager konnte nicht initialisiert werden!", TB_ERROR);
}
// DirectInput initialisieren
if(tbDirectInput::Init())
{
// Fehler!
TB_ERROR("DirectInput konnte nicht initialisiert werden!", TB_ERROR);
}
// Speicher für die analogen Knöpfe reservieren
g_pfButtons = new float[tbDirectInput::GetNumButtons()];
g_pbButtons = new BOOL[tbDirectInput::GetNumButtons()];
g_pbOldButtons = new BOOL[tbDirectInput::GetNumButtons()];
g_pfOldButtons = new float[tbDirectInput::GetNumButtons()];
ZeroMemory(g_pfButtons, tbDirectInput::GetNumButtons() * sizeof(float));
ZeroMemory(g_pbButtons, tbDirectInput::GetNumButtons() * sizeof(BOOL));
ZeroMemory(g_pbOldButtons, tbDirectInput::GetNumButtons() * sizeof(BOOL));
ZeroMemory(g_pfOldButtons, tbDirectInput::GetNumButtons() * sizeof(float));
// Das Intro wird erstmal weggelassen!
iStatus = INIT;
return TB_OK;
}
|
[/quote]