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
|
Verfasst am: 03.09.2004, 13:16 Titel: Texturen aus anderer Klasse |
|
|
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 |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 03.09.2004, 14:01 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 03.09.2004, 15:19 Titel: |
|
|
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 |
|
|
smile_virus Junior JLI'ler
Alter: 34 Anmeldedatum: 19.08.2004 Beiträge: 64
Medaillen: Keine
|
Verfasst am: 03.09.2004, 15:35 Titel: |
|
|
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 |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 03.09.2004, 15:40 Titel: |
|
|
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 |
|
|
smile_virus Junior JLI'ler
Alter: 34 Anmeldedatum: 19.08.2004 Beiträge: 64
Medaillen: Keine
|
Verfasst am: 03.09.2004, 16:50 Titel: |
|
|
Nein?
was muss ich denn ändern??
es wird doch in klasse2 initialisiert oder nicht? |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 03.09.2004, 17:26 Titel: |
|
|
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 |
|
|
smile_virus Junior JLI'ler
Alter: 34 Anmeldedatum: 19.08.2004 Beiträge: 64
Medaillen: Keine
|
Verfasst am: 03.09.2004, 17:46 Titel: |
|
|
jau
D3DXCreateTextureFromFileEx gibt FAILED zurück |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 03.09.2004, 18:11 Titel: |
|
|
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 |
|
|
smile_virus Junior JLI'ler
Alter: 34 Anmeldedatum: 19.08.2004 Beiträge: 64
Medaillen: Keine
|
Verfasst am: 03.09.2004, 18:39 Titel: |
|
|
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 |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 03.09.2004, 18:42 Titel: |
|
|
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 |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 03.09.2004, 18:49 Titel: |
|
|
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 |
|
|
smile_virus Junior JLI'ler
Alter: 34 Anmeldedatum: 19.08.2004 Beiträge: 64
Medaillen: Keine
|
Verfasst am: 03.09.2004, 19:08 Titel: |
|
|
ich hab mir die beschreibung des fehlers mit DXGetErrorDescribtion9 geholt, "Call succesful but,returned false" gibt die methode zurück |
|
Nach oben |
|
|
smile_virus Junior JLI'ler
Alter: 34 Anmeldedatum: 19.08.2004 Beiträge: 64
Medaillen: Keine
|
Verfasst am: 03.09.2004, 19:10 Titel: |
|
|
sry
hab mich vertan
DXGetErrorDescribtion9 gibt "Invalid call" zurück |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 03.09.2004, 19:38 Titel: |
|
|
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 |
|
|
|