Bild langsam erscheinen lassen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

bruce185

Betreff: Bild langsam erscheinen lassen

BeitragSo, Nov 27, 2005 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich habe ein Spiel geschrieben, und ich möchte am anfang das ein Bild langsam erscheint, nicht sofort, sondern langsam wie bei die meisten Spielen, so wie Alpha Blend in der art...
geht das mit Blitz Basic?, würde mich sehr freuen wenn das gehen würde, ich danke euch schonmal Very Happy

gruss andreas
 

Ava

Gast

BeitragSo, Nov 27, 2005 10:23
Antworten mit Zitat
Wenn es nur um das ein/ausblenden eines Logos oder so gehen soll, dass könntest Du bei BB2D mit einem Gamma-Effekt lösen. Musst Du Dir mal die passenden Befehle dazu angucken.

bruce185

BeitragSo, Nov 27, 2005 10:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ich danke dir, aber wo soll ich diese funktionen herbekommen?,
einfach raussuchen, toll, wenn ich nicht einmal weiss was für ein befehl ich brauche, könntest du mir vieleicht ein beispiel posten, wäre dir sehr dankbar Very Happy

andreas

Spikespine

BeitragSo, Nov 27, 2005 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:SetGamma
dort solltest du alles über die Befehle erfahren können
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

Hubsi

BeitragSo, Nov 27, 2005 11:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine recht schöne Funktion hat auch TheShadow geschrieben. Für allzu große Bilder natürlich nicht zu gebrauchen (da hat man in 2D sowieso kaum Chancen), aber für ein Intro grade recht Very Happy BlitzBasic: [AUSKLAPPEN]
; Werte: Blender(Grafikhandle,xpos,ypos,ein/ausblenden,zeit_in_Millisecs)

img=LoadImage(\"gfx/1.bmp\")

Blender(img,170,190,0,3000)
Delay 1000
Blender(img,170,190,1,2000)

; Die eigentliche Function

Function Blender(Image, X, Y, Mode,Time)
Source=ImageBuffer(Image)
Dest =FrontBuffer()
MaxX =ImageWidth(Image)-1
MaxY =ImageHeight(Image)-1
Start =MilliSecs()
Color 0,0,0
If Mode=0 Then Rect X,Y,MaxX+1,MaxY+1
If Mode=1 Then DrawBlock Image,X,Y
LockBuffer Source
LockBuffer Dest
While MilliSecs()-Start<Time
Count=(Count+1) Mod 4
If Count=0 Then MinX=0: MinY=0
If Count=1 Then MinX=1: MinY=1
If Count=2 Then MinX=1: MinY=0
If Count=3 Then MinX=0: MinY=1
If Mode=0 Then Value=MilliSecs()-Start
If Mode=1 Then Value=Time-MilliSecs()+Start
For ii=MinY To MaxY Step 2
For i=MinX To MaxX Step 2
rgb=ReadPixelFast(i,ii,Source)
rgb=(rgb And 16711680)/65536*Value/Time*65536+(rgb And 65280)/256*Value/Time*256+(rgb And 255)*Value/Time
WritePixelFast X+i,Y+ii,rgb,Dest
Next
Next
Wend
UnlockBuffer Source
UnlockBuffer Dest
If Mode=0 Then DrawBlock Image,X,Y
If Mode=1 Then Rect X,Y,MaxX+1,MaxY+1
End Function
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

x-pressive

BeitragSo, Nov 27, 2005 13:02
Antworten mit Zitat
Benutzer-Profile anzeigen
SetGamma ist nicht zu empfehlen, da dieser Befehl erstens nur im Vollbild funktioniert (nicht im Fenstermodus) und zweitens die Helligkeit ALLER Grafiken auf dem Bildschirm verändert, nicht nur die des betreffenden Bildes.

Wenn du B2D benutzt, wirst du wohl eine Pixelfade-Routine benutzen müssen (bei grösseren Bildern allerdings sehr langsam). Bei Blitz3D ist das einfacher, hier kannst du z.B. für die Grafik ein Sprite benutzen und das mit EntityAlpha() ein- oder ausblenden.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

Blitz-Coder

BeitragSo, Nov 27, 2005 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man den nicht mit Tranzparentz Arbeiten irgendwie?
Also dem Bild ne bestimmte Transparentz geben?
Dann würde ich nähmlich einfach von 100% Tranzparents auf 0% Tranzparents runtergehen in einzelnen Schritten und bestimment Zeit
Abständen dann das ganze in eine Schleife eingebunden und fertig ist der Saft!
_______________________________
>>>> Update! <<<<
>>>>>>> <<<<<<<
>>>>>>>>> <<<<<<<<<<
>>>>>>>>>>[RD-Ware]<<<<<<<<<<
>>>>>> www.rd-ware.de.vu <<<<<<<
________________________________

Spikespine

BeitragSo, Nov 27, 2005 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch das kannst du. Die Möglichkeiten stehen doch alle hier im Thread:
-Gamma (Nachteil: Nur Vollbild, ganzer Bildschirm kann man vllt. mit Viewport umgehen...)
-eigene Funktion, die die Pixel ausliest (langsam)
-oder B3D verwenden, da gibts alpha.
edit: https://www.blitzforum.de/viewtopic.php?t=14366
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

Goodjee

BeitragSo, Nov 27, 2005 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
oder du machst ne animation, die von transparent nach schwarz geht...
dann setzt du die über dein bild...und fertig is.
müsste doch im prinzip gehen.

Hubsi

BeitragSo, Nov 27, 2005 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein Very Happy Sobald das Animationsbild nicht mehr 100% transparent ist übermalt es das eigentliche Bild vollständig Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Goodjee

BeitragSo, Nov 27, 2005 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ach, ich dachte, es gebe auch halbtransparenz...
naja, dann kann man aber immer noch hässliche aisblendeffekte machen

Justus

BeitragSo, Nov 27, 2005 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder man benutzt die Extended Blitz Lib, die Alpha, Scale und Rotation auch für B2D möglich macht, oder man steigt auf BlitzMax um. Very Happy

Für ein kleines Intro sind jedoch beide Varianten zu aufwendig...
 

Ava

Gast

BeitragMo, Nov 28, 2005 6:39
Antworten mit Zitat
Ich bleibe bei meiner Meinung. Wenn es nur darum geht, ein Intro-Logo einzublenden, dann ist das unter BB2D am einfachsten und schnellsten mit den Gamma-Funktionen zu lösen! alles andere wäre absolut übertrieben...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group