Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
18.09.2001, 22:58
Retro



So, also ich bin grade am HUD redesignen und wollte das mit nen paar Grafiken ausstatten, also Sprites... Alles klar, schnell nen paar Sprites in weiß zum testen gemacht, und aufm HUD plaziert, kein problem.

Jetzt überlagern diese Sprites allerdings den Heath / Armor / Munitions - Wert.
Als ich die ersten beiden (Sprite1, Sprite2) gesetzt habe hat alles geklappt, den Sprite dahinter, der Text davor...

Als ich aber Sprite3 gesetzt habe, war der Sprite vorne, und der Text (Munition) dahinter -> ich konnte es nicht mehr sehen. Zum besseren verständnis hier mal nen Bild: (es geht um unten rechts)

So, ich müsste also dem Text eine Ebene nach oben bringen, aber wie soll das gehen? Geht das überhaupt?

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
001
18.09.2001, 23:14
TheTinySteini



Musst du wohl mal gucken, wann die ganzen Draw-Funktionen aufgerufen werden und deine halt als letzte dahinter klemmen... ;)
Jedenfalls wird die Ammo wann anders dargestellt als Health und Suit.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
002
19.09.2001, 00:48
Retro



M'kay... wenns nach ner Timeline geht isses schonmal machbar :)
Werd ich wohl mal suchen müssen, Thx.

Sprachs und ging ins Bett =)

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
003
19.09.2001, 06:51
Killing Me Softly



In 'void CHud :: Init( void )' werden ja bekanntlich die einzelnen HUD-Klassen initialisiert
Quellcode:
m_Ammo.Init();
m_Health.Init();
m_Geiger.Init();
m_Train.Init();
m_Battery.Init();

Die Reihenfolge bestimmt auch indirekt die Reihenfolge, in der die einzelnen Draw-Funktionen aufgerufen werden. Du musst .Init() der Klasse, die für das zeichnen der Sprites verantwortlich ist, einfach VOR m_Ammo.Init() aufrufen. Dann funzts (imho).

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche
004
19.09.2001, 14:45
Retro



Hmm, stimmt, währe sowiso eleganter für die ganzen Sprite-Grafiken ne eigene HUD-Klasse zu machen... Bisher stehts mit in der CHudHealth::Draw aber hast recht, werd ich mal ne neue Hud-Klasse für anlegen.

Wenn das dann wirklich so geht wie du gesagt hastQuellcode:[b]m_Sprites.Init();[/b]
m_Ammo.Init();
m_Health.Init();
m_Geiger.Init();
m_Train.Init();
m_Battery.Init();

Dann gehts ja einfach, werd ich glech einmal testen.. danke!

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
005
20.09.2001, 00:42
Retro



Puh, nu hab ichs so gemacht, und ne hübsche neue Hud-Klasse namens "CHudGraphic" dazu...

Nun hab ich sie auch sonst überall definiert wo die anderen (CHudHealth & CHudAmmo) definiert wareb, und alles klappt auch, außer das nichts gezeichnet wird =\

Es gibt keine Fehler, aber ich seh auch kein ergebnis. Ich habe das ganze in ne cpp namens graphic.cpp gepackt: Quellcode:#include "STDIO.H"
#include "STDLIB.H"
#include "MATH.H"

#include "hud.h"
#include "cl_util.h"
#include "parsemsg.h"
#include <string.h>

int CHudGraphic::Init(void)
{
gHUD.AddHudElem(this);

return 1;
}

int CHudGraphic::VidInit(void)
{
return 1;
}

int CHudGraphic::Draw(float flTime)
{
// left down
m_hGraphicPanelLDSpr = LoadSprite("sprites/test.spr");

SPR_Set( m_hGraphicPanelLDSpr, 255, 255, 255);
SPR_DrawHoles( 0, 0, ScreenHeight - 64, NULL);

// left clip
m_hGraphicPanelLCSpr = LoadSprite("sprites/test2.spr");

SPR_Set( m_hGraphicPanelLCSpr, 255, 255, 255);
SPR_DrawHoles( 0, 256, ScreenHeight - 64, NULL);

// right down
m_hGraphicPanelRDSpr = LoadSprite("sprites/test.spr");

SPR_Set( m_hGraphicPanelRDSpr, 255, 255, 255);
SPR_DrawHoles( 0, ScreenWidth - 256, ScreenHeight - 64, NULL);

return 1;
}

void CHudGraphic::Reset( void )
{
// für weitere verwendung
}

Ich hab garantiert irgendwo nen Fehler gemacht, sonst würds ja gehen =(

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 20.09.2001 um 00:42 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche