Seite 2 von 6
Verfasst: 27.11.2004 15:42
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.
Verfasst: 27.11.2004 15:58
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.
Verfasst: 27.11.2004 16:43
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

Verfasst: 28.11.2004 01:57
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?
Palette?
Verfasst: 28.11.2004 03:31
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_\
. /
Verfasst: 28.11.2004 03:53
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...
Verfasst: 28.11.2004 04:03
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.
Verfasst: 28.11.2004 12:39
von MVXA
mmmh, ich dacht Sprite und Sprite3D kann unabhängig von einander numerieren

Verfasst: 28.11.2004 15:29
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
die Konstanten durcheinander wirfst ... eigentlich müsste es logischerweise heißen
aber da beide Konstanten 0 sind, ist das ganze hier nicht ersichtlich

.
MFG PMV
Verfasst: 30.11.2004 22:13
von MVXA
achso. Aber auf meinem Laptop funktioniert das Beispiel auch nicht

Da ist eine S3 Twister drine.