JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=7da14d6984baebdcc82f06e1e470da9eMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Direct3D Methoden in anderen Klassen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Pizzabroetchen
Junior JLI'ler



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 16.05.2004, 21:26    Titel: Direct3D Methoden in anderen Klassen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 16.05.2004, 21:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Pizzabroetchen
Junior JLI'ler



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 16.05.2004, 21:57    Titel: Antworten mit Zitat

grml, habs verstanden
übergebe die Objekte jetzt per Parameter an die Funktion
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 12:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 12:32    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum