Hi,
ich hab mal angefangen ein Spiel zu programmieren mit der TBEngine. Bei mir kommt aber immer der Fehler beim erstellen der exe:
error C2664: 'tbDoMessageLoop' : Konvertierung des Parameters 1 von 'tbResult (void)' in 'tbResult (__cdecl *)(float)' nicht möglich
Der Code ist größtenteils aus den BeispielSpielen von David
Hier die Nachrichtenschleife:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
if(tbDoMessageLoop(::Move, ::Render))
{
// Fehler!
TB_ERROR("Fehler in der Nachrichtenschleife!", TB_ERROR);
}
|
Kapselung (wobei ich nicht versteh warum des´ohne nicht funktioniert):
|
C-/C++-Quelltext
|
1
2
|
tbResult Move() {return g_pGQ->Move();}
tbResult Render() {return g_pGQ->Render();}
|
Move und Render 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
|
// Bewegt das Spiel
tbResult CGalaxyQuest::Move()
{
/*
######################################################################
#
# Bewegt das Spiel
#
######################################################################
#
# Fertig!
#
######################################################################
*/
// Eingabegeräte abfragen, alten Status kopieren
memcpy(g_pbOldButtons, g_pbButtons, tbDirectInput::GetNumButtons() * sizeof(BOOL));
memcpy(g_pfOldButtons, g_pfButtons, tbDirectInput::GetNumButtons() * sizeof(float));
tbDirectInput::GetState(g_pfButtons, g_pbButtons);
// Zeit aktualisieren
FTime = GetFTime();
// Move Funktionen ausführen
if(GameState('M'))
{
// Fehler!
TB_ERROR("Fehler in GameState->Move!", TB_ERROR);
}
// Globalen Zähler erhöhen
GTime += GetFTime();
// Stoppuhr auf Null stellen
FTimeReset();
return TB_OK;
}
// __________________________________________________________________
// Zeichnet das Spiel
tbResult CGalaxyQuest::Render()
{
/*
######################################################################
#
# Zeichnet das Spiel
#
######################################################################
#
# Fertig!
#
######################################################################
*/
// Render Funktionen ausführen
if(GameState('R'))
{
// Fehler!
TB_ERROR("Fehler in GameState->Render!", TB_ERROR);
}
// Bildpuffer anzeigen
if(tbDirect3D::Present())
{
// Anzeigen ist fehlgeschlagen!
// Wahrscheinlich läuft das Programm im Vollbildmodus und es
// wurde zwischenzeitlich minimiert.
return TB_ERROR;
}
return TB_OK;
}
|
Danke für Eure Hilfe