|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 08.07.2008, 18:56 Titel: |
|
|
Eine Methode ist es, sich alle jemals geladenen Bilder zu merken, dann kann man mehrfache Zeiger auf die Bilder benutzen.
Man muss natürlich ein wenig aufpassen, wenn sich diese Bilder ändern, ändern sie sich überall, wo sie benutzt werden. Dann muss man sie evtl. doch mehrmals im Speicher haben. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 09.07.2008, 21:21 Titel: |
|
|
wäre es eine lösung, das bild einmal auf ein surface zu kopieren und dann per stretchrect mehrmals auf ein anderes? dann würde ich für jedes bild ein surface erstellen, und diese dann auf ein großes kopieren. |
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 10.07.2008, 09:36 Titel: |
|
|
aus irgendeinem grund erstellt er mir kein surface:
CPP: | bool DXGCreateTextureLevel(char* name, int width, int height)
{
if(Surfaces[name] == NULL) //std::map<char*, IDirect3DSurface9*> Surfaces;
{
lpD3DDevice->CreateOffscreenPlainSurface(
width, // = 544
height, // = 375
D3DFMT_A8R8G8B8,
D3DPOOL_MANAGED,
&Surfaces[name],
NULL);
}
if(Surfaces[name] == NULL) DXGShutdown(); // verursacht laufzeitfehler, bedeutet surface existiert nicht!
return true;
}
|
warum erstellt er das surface nicht? hat das vielleicht was damit zutun, das ich im fenstermodus bin? |
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 10.07.2008, 13:29 Titel: |
|
|
ok, der fehler hat sich erledigt, ich muss 0 als letzten parameter angeben, nicht NULL. Das sind Fehler die mich aufregen!
jetzt hab ich ein neues problem, ich will das surface anzeigen, seh aber nichts:
CPP: | bool DXGShowLevel(char* name) //Funktion wird zwischen StartSzene() und EndSzene() aufgerufen
{
if(Surfaces[name] != NULL) //if-Zweig wird ausgeführt
{
D3DSURFACE_DESC Info;
Surfaces[name]->GetDesc(&Info);
RECT SourceRect = {0, 0, Info.Width, Info.Height};
lpD3DDevice->ColorFill(Surfaces[name], NULL, D3DCOLOR_XRGB(255, 255, 255));
lpD3DDevice->StretchRect( Surfaces[name],
NULL,
lpBackBuffer,
NULL,
D3DTEXF_NONE);
}
return true;
}
|
|
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 10.07.2008, 14:03 Titel: |
|
|
Na ja, du definierst dir zwar ein SourceRect, übergibst es aber der Funktion dann nicht.. |
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 10.07.2008, 14:20 Titel: |
|
|
stimmt, aber NULL sollte eigentlich das komplette surface kopieren.
ich habs auch schon mit source rect ausprobiert, ändert nichts. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 10.07.2008, 14:42 Titel: |
|
|
Prüfe die Rückgabewerte der DX Methoden. |
|
Nach oben |
|
|
newby JLI'ler
Anmeldedatum: 17.08.2007 Beiträge: 106
Medaillen: Keine
|
Verfasst am: 10.07.2008, 16:41 Titel: |
|
|
funktioniert auf einmal, ich weiß nicht warum
neue frage, ist es irgendwie möglich surfaces transparent zu machen?
der alphachannel im bild selber scheint nicht zu funktionieren und der colorkey scheint irgendwie nicht zu funktionieren. Ich will die farbe D3DCOLOR_XRGB(254, 254, 254) durchsichtig haben. was muss ich als colorkey angeben? |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 11.07.2008, 12:24 Titel: |
|
|
Mit dem Makro D3DCOLOR_ARGB kannst du zusätzlich den Alphakanal angeben. Das Surface muss dann auch in diesem Farbmodus erstellt worden sein. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
|
|
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
|