Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 16.05.2004, 21:26 Titel: Direct3D Methoden in anderen Klassen |
|
|
wie kann ich eigentlich in einer eigenen Klasse, eine Direct3D Funktion aufrufen? Die Klasse ist die auf der CD
ich habe in meiner eigenen Klasse die Funktion :
void CList::DrawList()
{
m_lpD3DDevice = Direct3D.GetDevice();
}
jetzt sagt er mir aber, daß Direct3D: nichtdeklarierter Bezeichner
Der linke Teil von '.GetDevice' muss eine Klasse/Struktur/Union sein
was muss ich tun damit das ganze funktioniert? |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 16.05.2004, 21:38 Titel: |
|
|
na so kann das ja nich gehen, woher soll den deine Klasse die Direct3D Klasse "kennen"?
Du könntest z.B. im Konstruktor deiner Klasse einen Zeiger auf ein Objekt deiner Direct3D Klasse übergeben, diesen innerhalb der Klasse speichern und dann z.B mit m_lpDirect3D->GetDevice(); arbeiten...
Aber so wie ich dein Problem verstehen versuchst du in deiner neuen den Zeiger auf das Device Objekt zuspeichern...
das sähe dann so aus:
CList.m_lpD3DDevice = Direct3D.GetDevice();
wobei m_lpD3DDevice natürlich public sein muss, sonst könntest du auch ein SetDevice Methode o.ä. anlegen... |
|
Nach oben |
|
|
Pizzabroetchen Junior JLI'ler
Anmeldedatum: 29.02.2004 Beiträge: 55
Medaillen: Keine
|
Verfasst am: 16.05.2004, 21:57 Titel: |
|
|
grml, habs verstanden
übergebe die Objekte jetzt per Parameter an die Funktion |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 17.05.2004, 12:20 Titel: |
|
|
Ich weiß ja nicht ob dus gemacht hast, aber ich würde auf jeden Fall Zeiger übergeben und nicht das Objekt selbst. Den sonst hast du ja quasi ne Kopie und man braucht ja in der Regel nur 1 Direct3D Objekt. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 17.05.2004, 12:32 Titel: |
|
|
Du könntest es auch so machen:
Du schreibst am Ende deiner D3D-Klassen folgendes:
Code: | class CDirect3D
{
public:
....
private:
....
};
extern CDirect3D Direct3D; //<-- das ist wichtig |
Dann deklarierst du das Objekt einmal in deiner main.cpp.
Code: | CDirect3D Direct3D; |
Dann kannst du in jeder Datei, in der du d3d.h includest, das Objekt deiner Klasse verwenden.
Greetings,
Vision |
|
Nach oben |
|
|
|