Hilfe, Transparenz funktioniert nur bei mir :(

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Serge
Beiträge: 66
Registriert: 20.09.2004 20:44
Kontaktdaten:

Beitrag von Serge »

Wie gesagt, PB hat einen Fehler bei der Farbumrechnung.
128,128,128 gibts bei PB eben nicht im 16bit modus.
Warum machst du nicht 255,0,255 als transparente Farbe? Die Farbe braucht man in der Regel eh nie.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@Little:

meintest du jetzt eigentlich 16bit mode oder 16-farben mode?

bei 16bit-mode:
probier mal bei dem alten sprite die farbe (0,16,0) als transparent einzustellen,
(und auch mal (0,15,0) zur sicherheit)
das müsste das grün sein, das (0,128,0) in 24bit- und 32bit-mode entspricht.

bei 16-farben-mode:
bin mir nicht sicher, ob da eine transparenz gibt,
die müsste dann mit dem palettenindex aktiviert werden,
aber TransparentSpriteColor(#,4) geht glaubich nicht.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

ich hab das auchs schon mit [c]RGB(255, 0, 255)[/c] gestestet, gleiches ergebniss, die Farbe wurde nicht transparent dargestellt /:->. Übrigens ich hab den Code so geschrieben, dass er die Farbe des 1. Pixel ermittelt und als Transparenz darstellt.

@ Kaeru
Ich meinte den 16 Farben Mode. Und ich meinte, das die Farbe [c]RGB(0, 128, 0)[/c] eigentlich so ziehmlich unter jedem Modus verfügbar sein müsste.

[Edit:]
Ich hab mal das Programm ohne Sprite3D getestet und da funktioniert die transparente darstellung :shock:
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja, das habe ich verstanden, darum meinte ich ja, vielleicht irgentwie den paletteneintrag '4' zu benennen, das ist grün128 in der 16er palette.

wenn es allerdings ohne sprite3D funzt, hast du vorher die transparent-farbe nach der sprite3D-Nr. oder nach der texture-sprite-Nr. zugeordnet?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Palette?

Beitrag von Hroudtwolf »

Vieleicht brauchst du ja ne feste Palette........
Mach dir doch ne Paletten-Datei. So hat dann jeder Benutzer deines Programmes die gleiche Palette für die Sprites ?
O_\
. /
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

mmmh... Kann ich mir aber nciht vorstellen, dass ich irgendwo was vertauscht habe. Das sieht so aus:

Code: Alles auswählen

LoadSprite            (#sptSoldat, "gfx\Soldier0.png", #PB_Sprite_Texture)
TransparentSpriteColor(#sptSoldat, Red(GetTrans(#sptSoldat)), Green(GetTrans(#sptSoldat)), Blue(GetTrans(#sptSoldat)))
CreateSprite3D        (#sptSoldat, #sp3Soldat) 
und wenn ich dann in der Schleife das DisplaySprite3D() durch DisplaySprite() ersetze und da #sptSoldat hin mache funktionierts...
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hm, sieht so aus, wie ichs spontan auch machen würde.

[edit]: ausse hilfe: CreateSprite3D(#Sprite3D, #Sprite) sind bei dir beide Nr.n gleich?

[edit2]

Code: Alles auswählen

  LoadSprite(0, "Data\Geebee2.bmp", #PB_Sprite_Texture)
  CreateSprite3D(0, 0)
  CreateSprite3D(1, 0)
  CreateSprite3D(2, 0)
  
  Sprite3DQuality(1)
  
  TransparentSpriteColor(0, 255, 0, 255)
so stehts im beispiel, dann müsste deins eigentlich gehn :|


@Hroudtwolf: dir 16-farben palette ist grundsätzlich festgelegt, seit ega in den frühen 80ern.

stell mal in paint auf 16farben, genau die sinds immer.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

mmmh, ich dacht Sprite und Sprite3D kann unabhängig von einander numerieren :|
Bild
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

also auf meinem System klappts problemlos ... aber ich wollt nur mal schnell erwähnen bzw das was Kaeru Gaman meinte,
[edit]: ausse hilfe: CreateSprite3D(#Sprite3D, #Sprite) sind bei dir beide Nr.n gleich?
^^Damit wollt er sagen das du bei

Code: Alles auswählen

CreateSprite3D        (#sptSoldat, #sp3Soldat) 
die Konstanten durcheinander wirfst ... eigentlich müsste es logischerweise heißen

Code: Alles auswählen

CreateSprite3D        (#sp3Soldat, #sptSoldat)
aber da beide Konstanten 0 sind, ist das ganze hier nicht ersichtlich :wink: .

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

achso. Aber auf meinem Laptop funktioniert das Beispiel auch nicht :( Da ist eine S3 Twister drine.
Bild
Antworten