Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

1

14.09.2004, 23:09

Probleme mit der Init Funktion meines Spiels

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]

Stefan

Alter Hase

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

2

15.09.2004, 09:21

C-/C++-Quelltext

1
2
3
4
5
// 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); 


Schreib danach noch:

C-/C++-Quelltext

1
tbDirect3D::Init(&m_Config, "Name deines Spiels", NULL, LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_ICON1));


Somit intialisierst Du D3D mit den gewünschten Einstellungen des Auswahldialogs!


cya,
Stefan

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

3

15.09.2004, 11:37

Wenn ich das gemacht habe und die fehlende Klammer bei dir ergänzt habe kommt dann:
error C2065: 'IDI_ICON1' : nichtdeklarierter Bezeichner

Stefan

Alter Hase

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

4

15.09.2004, 11:39

hm, schreib einfach statt dem IDI_ICON NULL!

C-/C++-Quelltext

1
tbDirect3D::Init(&m_Config, "Name deines Spiels", NULL, LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(NULL));




cya,
Stefan

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

5

15.09.2004, 13:05

Jetzt Funktionierts, Danke

Werbeanzeige