SetMaskColor

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Munch

Betreff: SetMaskColor

BeitragMo, Sep 12, 2005 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leutz,
wenn ich ein Bild drehe wird der zu Maskierende bereich Schwarz, und ist net mehr Transparent da ich lila als Maskenfarbe gewählt habe. Jetzt nutze ich die BlitzBasic Demo, das Problem ist das da der Befehl den ich warscheinlich brauche (SetMaskColor) nicht zu gebrauchen ist, oder lieg ich da falsch? Kann mir einer sagen wie ich das Anders machen kann?
gruß
munch
 

MegaTefyt

BeitragMo, Sep 12, 2005 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie dir sicher auch andere raten werden: benutz vorberechnete Bilder und keine Echtzeitrotation (aus Performance-Gründen vor allem, aber das behebt auch dein Problem Wink).

d-bug

BeitragMo, Sep 12, 2005 12:11
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Der Befehl heisst ql:maskimage in Blitzbasic (ich glaube SetMaskColor ist Bmax)
2. zeig mal den code-teil, in dem du die bilder drehst
 

Munch

BeitragMo, Sep 12, 2005 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
;------------Variablen--------------
Dim Car1(360)


;-----------Grafiken Laden----------
TFormFilter 0

;Autos
For winkel = 0 To 359
Car1(winkel)=LoadImage("gfx/CF1.bmp")
MidHandle Car1(winkel)
RotateImage Car1(winkel),winkel
MaskImage Car1(winkel),255,0,255

Next

d-bug

BeitragMo, Sep 12, 2005 12:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigenartig, das sollt eigentlich so funktionieren... Wenn es auch ein wenig lahmarschig sein dürfte Wink Warum benutzt du nicht CopyImage ? Ist schneller als es jedes mal von der Festplatte zu sutscheln
 

Munch

BeitragMo, Sep 12, 2005 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
es funktioniert soweit auch. Das mit Copyimage ist ne gute idee. Das Problem ist nur, das die Maskenfarbe lila ist. Wenn der das Bild dreht macht der das neue Bild an den stellen wo es gedreht wurde Schwarz. Das heißt das grundbild ist lila und wird transparent im game, aber der überschüssige rand beim drehen ist schwarz und wird nicht transperent. Jetzt bdachte ich das man mit Setmaskcolor bestimmen kann welche Farbe der beim drehen nimmt. Geht das nicht mit dem Befehl? Er geht aber nicht unter BlitzBasic, also bräucht ich ne andere möglichkeit wenn ich das nicht von Hand machen will...

d-bug

BeitragMo, Sep 12, 2005 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ne billige variante wäre es ein neues image in der gleichen größe zu erstellen dann mit color + rect in deiner maskenfarbe draufmalen und dann mit drawimage das bereits rotierte bild wieder draufzupinseln...

Code: [AUSKLAPPEN]
;------------Variablen--------------
Dim Car1(360)


;-----------Grafiken Laden----------
TFormFilter 0

car1(0)=LoadImage("gfx/CF1.bmp")
MidHandle car1(0)
MaskImage Car1(0),255,0,255

;Autos
For winkel = 1 To 359
temp = copyimage(car1(0))
MidHandle temp
RotateImage temp,winkel
car1(winkel) = createimage (imagewidth(temp),imageheight(temp))
setbuffer imagebuffer(car1(winkel))
color 255,0,255 ;oder so
rect 0,0,imagewidth(temp),imageheight(temp),1
drawimage temp,imagewidth(temp)/2,imageheight(temp)/2
freeimage temp
MaskImage Car1(winkel),255,0,255
Next


mal auf die schnelle und nicht getestet...
 

Munch

BeitragMo, Sep 12, 2005 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab grade erstmal das ganze mit Copyimage gemacht und jetzt funktioniert es aufeinmal auch mit der Maskenfarbe. Kann ich mir zwar net ganz erklären, aber naja gut so Wink Dank dir!

D2006

Administrator

BeitragMo, Sep 12, 2005 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Grundregel: Erst Maskimage, dann RotateImage. Dann klappt's auch beim Nachbarn.

MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

d-bug

BeitragMo, Sep 12, 2005 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
da hab ich auch mal wieder was gelernt...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group