Spritetexture maskieren?
Übersicht

![]() |
TheProgrammerBetreff: Spritetexture maskieren? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.
Ich habe einen Sprite mit einer Texture. Ich möchte aber, dass die schwarze Fläche maskiert ist. Doch das funzt irgendwie net: Code: [AUSKLAPPEN] sprite = CreateSprite() tex = CreateTexture(64,64,4) SetBuffer TextureBuffer(tex) color 255,0,0 rect 0,0,64,64,1 color 0,0,0 oval 16,16,32,32,1 EntityTexture(sprite,tex) SetBuffer BackBuffer() Ich hoffe, mir kann jemand helfen. Mfg TheProgrammer |
||
aktuelles Projekt: The last day of human being |
FBI-blitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
entityfx ... ? | ||
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+ Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+ |
![]() |
Peer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist ein Fehler von Blitz. Alle Malfunktionen setzten Alpha auf 00. Um das zu behben musst du das ganze Bild durchgehen und alle Pixel mit ReadPixelFast lesen und mit WritePixelFast mit verändertem Alpha wieder malen.
Edit: So hier noch der Code: BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
MaTrixCruiser |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde die texture nicht in Blitz malen sondern laden. dann hast du das problem nicht. | ||
Amd 64 3200+ (939 winchester)
nvidea 6600gt (PCI-E) 1024 ddr400 200GB HDD S |
![]() |
Peer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Manchmal muss man aber in Blitz malen. Dann braucht man solche Funktionen. Die obige funktioniert übrigens nur bei Mask. Für Alpha ist sie entwas anders. Und man sollte sie nicht in jedem Frame benutzen da sie ziemlcih langsam ist. | ||
![]() |
MaTrixCruiser |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stimmt. Da hast du recht.
Aber ich bin für texturen. Da kann man dann mit alpha channels arbeiten. |
||
Amd 64 3200+ (939 winchester)
nvidea 6600gt (PCI-E) 1024 ddr400 200GB HDD S |
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die antworten. ![]() Ich werds gleich mal ausprobieren... |
||
aktuelles Projekt: The last day of human being |
![]() |
Devils Child |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] sprite = createsprite() tex = loadtexture("C:\...", 4) entitytexture sprite, tex :idea: |
||
![]() |
Peer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn man Loadtexture verwendet funktioniert alles weil loadtexture automatisch die Alpha Werte setzt. Wenn man Createtexture benutzt und Blitz Mal Befehle dann gehts halt nicht. Außer wenn man alles mit WritePixel(Fast) macht da man da selbs die Alpha Werte Setzten kann.
Alternativ noch BlitzBasic: [AUSKLAPPEN]
was geschwindigkeitsmäßig und stielistisch natürlich unterste Schublade ist. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group