JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Texturen aus anderer Klasse
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
smile_virus
Junior JLI'ler


Alter: 34
Anmeldedatum: 19.08.2004
Beiträge: 64

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 13:16    Titel: Texturen aus anderer Klasse Antworten mit Zitat

ich lege alle texturen in der klasse "Klasse1" per D3DXCreateTextureFromFileEx an. In der klasse "Klasse2" wird der methode "Init" ein zeiger vom typ Klasse1 übergeben, dann werden texturen, die ich in Klasse2 gemacht hab, die werte der texturen aus klasse1 übergeben um sie in Klasse2 mit Draw zu zeichnen.

Init() von Klasse1.h
Code:

D3DXCreateTextureFromFileEx(.......,&lpTexture);


Init() von Klasse2.h
Code:

Init(Klasse1* Klasse)
{
lpTexture = Klasse->lpTexture;
}


Ich bekomm aber auf dem bildschirm nichts zu sehen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 14:01    Titel: Antworten mit Zitat

Und was glaubst du sagen uns die Codestücke die du uns gegeben hast.
Ein bisschen mehr bitte!
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 15:19    Titel: Antworten mit Zitat

Sieht doch richtig aus. Sowas hab ich auch gemacht. Aber ein bisschen mehr Quellcode wär nicht schlecht. Das bisschen da oben ist aber schon richtig.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
smile_virus
Junior JLI'ler


Alter: 34
Anmeldedatum: 19.08.2004
Beiträge: 64

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 15:35    Titel: Antworten mit Zitat

Klasse1.h:
Code:

#include <d3d9.h>
#include <d3dx9.h>
class Klasse1
{
public:
    Klasse1();
    ~Klasse1();
    Init(LPDIRECT3DDEVICE9 Device);
    LPDIRECT3DDEVICE9 lpDevice;
    LPDIRECT3DTEXTURE9 lpTexture;
};

Klasse1.cpp:
Code:

#include "Klasse1.h"
Klasse1::Klasse1()
{
    lpDevice = NULL;
    lpTexture = NULL;
}
Klasse1::~Klasse1()
{
    if(NULL != lpTexture)
    {
        lpTexture->Release();
        lpTexture = NULL;
    }
}
Klasse1::Init(LPDIRECT3DDEVICE9 Device)
{
    lpDevice = Device;
    D3DXIMAGE_INFO ImageInfo;
    D3DXGetImageInfoFromFile("D:/C++/gfx/bild.bmp",&ImageInfo)
    D3DXCreateTextureFromFileEx(lpDevice,
                                "D:/C++/gfx/bild.bmp",
                                ImageInfo.Width,
                                ImageInfo.Height,
                                1,0,
                                D3DFMT_UNKNOWN,
                                D3DPOOL_MANAGED,
                                D3DX_FILTER_NONE,
                                D3DX_FILTER_NONE,
                                0xFFFFFF,0,0,
                                &lpTexture);
}

Klasse2.h:
Code:

#include "Klasse1.h"
class Klasse2
{
public:
    Klasse2();
    ~Klasse2();
    Init(Klasse1* Klasse,LPDIRECT3DDEVICE9 Device);
    LPDIRECT3DDEVICE9 lpDevice;
    LPD3DXSPRITE lpSprite;
    LPDIRECT3DTEXTURE9 lpTexture;
    D3DXVECTOR2 vScale;
    D3DXVECTOR2 vRotCenter;
    D3DXVECTOR2 vPosition;
};

Klasse2.cpp:
Code:

#include "Klasse2.h"
Klasse2::Klasse2()
{
    lpSprite = NULL;
    lpTexture = NULL;
}
Klasse2::~Klasse2()
{
    if(NULL != lpSprite)
    {
        lpSprite->Release();
        lpSprite = NULL;
    }
    if(NULL != lpTexture)
    {
        lpTexture->Release();
        lpTexture = NULL;
    }
}
Klasse2::Init(Klasse1* Klasse,LPDIRECT3DDEVICE9 Device)
{
    lpDevice = Device;
    D3DXCreateSprite(lpDevice,&lpSprite);
    lpTexture = Klasse1->lpTexture;
    vPosition = D3DXVECTOR2(50,50);
    vRotationCenter = D3DXVECTOR2(16,16);
    vScale = D3DXVECTOR2(1.0f,1.0f);
}
Klasse2::Draw(void)
{
    lpSprite->Draw(lpTexture,
                     0,
                     &vScale,
                     &vRotationCenter,
                     0.0f,
                     &vPosition,
                     0xFFFFFFFF);
}


Zuletzt bearbeitet von smile_virus am 03.09.2004, 15:50, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 15:40    Titel: Antworten mit Zitat

Du initialisierst das Sprite nicht.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
smile_virus
Junior JLI'ler


Alter: 34
Anmeldedatum: 19.08.2004
Beiträge: 64

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 16:50    Titel: Antworten mit Zitat

Nein?
was muss ich denn ändern??
es wird doch in klasse2 initialisiert oder nicht?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 17:26    Titel: Antworten mit Zitat

Stimmt,
wird vielleicht die Textur nicht richtig geladen überpfrüfe mal die Rückgabewerte.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
smile_virus
Junior JLI'ler


Alter: 34
Anmeldedatum: 19.08.2004
Beiträge: 64

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 17:46    Titel: Antworten mit Zitat

jau
D3DXCreateTextureFromFileEx gibt FAILED zurück
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 18:11    Titel: Antworten mit Zitat

Dann stimmt wahrscheinlich der Pfad nicht.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
smile_virus
Junior JLI'ler


Alter: 34
Anmeldedatum: 19.08.2004
Beiträge: 64

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 18:39    Titel: Antworten mit Zitat

doch, der pfad stimmt
was kann es noch für gründe geben?
kann es vielleicht sein, dass ich keine texturen mehr anlegen kann,
weil einfach der speicher zu voll ist?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 03.09.2004, 18:42    Titel: Antworten mit Zitat

Bekommst du nur FAILED zurück oder hast dun Makro das dies auswertet, bin mir nicht sicher aber sollte nicht ein richtiger Fehlercode zurückgegeben werden ?
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 18:49    Titel: Antworten mit Zitat

smile_virus hat Folgendes geschrieben:

D3DXCreateSprite(lpDevice,&lpSprite);


Diese Zeile kann man einfügen wohin man will. Wichtig ist nur, dass der Spritezeiger auch an die Spriteklasse übergeben wird. Ich habs jedenfalls in der Hauptinitialisierung eingebaut (wäre auch schwachsinnig für jedes Sprite erneut einen Zeiger zu erstellen, wenn sowieso jeder den gleichen Zeiger benutzen kann ->Spart unheimlich viel Zeit).

Hast du die Position auch richtig initialisiert? Wenn sonst kein Compilerfehler gibt, wüsste ich jetzt nicht, woran es liegen könnte.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
smile_virus
Junior JLI'ler


Alter: 34
Anmeldedatum: 19.08.2004
Beiträge: 64

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 19:08    Titel: Antworten mit Zitat

ich hab mir die beschreibung des fehlers mit DXGetErrorDescribtion9 geholt, "Call succesful but,returned false" gibt die methode zurück
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
smile_virus
Junior JLI'ler


Alter: 34
Anmeldedatum: 19.08.2004
Beiträge: 64

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 19:10    Titel: Antworten mit Zitat

sry
hab mich vertan
DXGetErrorDescribtion9 gibt "Invalid call" zurück
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 03.09.2004, 19:38    Titel: Antworten mit Zitat

rufst du vielleicht das Init von Klasse 1 vor dem Init von Klasse 2 auf?
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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