Fade-In / Fade-Out Effekt

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

diceman

Betreff: Fade-In / Fade-Out Effekt

BeitragSa, Dez 04, 2010 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Bildschirm langsam nach schwarz hin ausblenden, bzw. einblenden . . .
Ich habe etwas mit dem Setgamma/Update Gamma-Befehl rumprobiert, kriege das aber irgendwie absolut nicht auf die Kette. Sad

Hubsi

BeitragSa, Dez 04, 2010 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutzt Du Blitz3D? Dann kannst Du einfach ein Sprite erstellen, mit einer schwarzen Textur bekleben und entsprechend mit Transparenz arbeiten. Klappt einwandfrei, hab das schon ein paar mal angewendet Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

ZaP

BeitragSa, Dez 04, 2010 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hubsi's Methode + EntityOrder und EntityColor statt einer Textur Razz
Starfare: Worklog, Website (download)

diceman

BeitragSa, Dez 04, 2010 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, hätte natürlich dazu schreiben müssen, daß ich mit Blitzplus arbeite ... Smile

Xeres

Moderator

BeitragSa, Dez 04, 2010 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Gamma Befehle funktionieren zwar nur im Vollbild, geben aber einen hübschen Effekt. Einfach die Palette langsam Abdunkeln.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

hazumu-kun

BeitragSa, Dez 04, 2010 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ansonsten eine eigene Funktion basteln die pixel mit Transparenz zeichnet.
Daraus dann ne Funktion die Rechtecke mit Transparenz zeichnet, aber vorsicht, das kann mega langsam werden.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

diceman

BeitragSa, Dez 04, 2010 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Xeres hat Folgendes geschrieben:
Die Gamma Befehle funktionieren zwar nur im Vollbild, geben aber einen hübschen Effekt. Einfach die Palette langsam Abdunkeln.


Genau sowas meinte ich. :/
Ich komme nur leider mit dem Befehl absolut nicht klar (der macht ums Verrecken nicht was ich will), und dachte, ich könnte hier ein wenig schnelle Hilfe mit einem Beispiel-Listing bekommen. Smile

Xeres

Moderator

BeitragSa, Dez 04, 2010 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würd's so machen:
BlitzBasic: [AUSKLAPPEN]
Graphics(800,600,0,1)
SetBuffer BackBuffer()

Local gamma = -255, timer, i

;** Von Schwarz...
Repeat
If MilliSecs() > timer + 10 Then
timer = MilliSecs()
gamma = gamma + 1
For i = 0 To 255
SetGamma(i, i, i, i+gamma, i+gamma, i+gamma)
Next
UpdateGamma()
;TileBlock testbild, 0, 0
Flip
End If
If gamma = 0 Then Delay(4000) : Exit
Forever

;** Nach 4 Sekunden Pause zurück zu Schwarz:
Repeat
If MilliSecs() > timer + 10 Then
timer = MilliSecs()
gamma = gamma - 1
For i = 0 To 255
SetGamma(i, i, i, i+gamma, i+gamma, i+gamma)
Next
UpdateGamma()
;TileBlock testbild, 0, 0
Flip
End If
If gamma = -255 Then Delay(4000) : Exit
Forever

;* Gamma normalisieren:
For i = 0 To 255
SetGamma(i, i, i, i, i, i)
Next
UpdateGamma()
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

diceman

BeitragSa, Dez 04, 2010 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, du hast mir den Befehl schonmal etwas näher gebracht. Aber immer noch nicht so wirklich das, was ich wollte. Ich möchte in der Update Gamma-Schleife ja auch noch ein Bild darstellen, welches ein- bzw. ausgeblendet wird, und das funktioniert irgendwie gar nicht. :/ Lediglich der Schwarz-Wert wechselt zu weiß, bzw. umgekehrt, während alles Farbige total abrupt seine Farbinformation wechselt.

Code: [AUSKLAPPEN]
SeedRnd MilliSecs()
Graphics 800,600

SetBuffer BackBuffer()


testbild = CreateImage(800,600)
For a = 1 To 100
   Color Rand(0,255),Rand(0,255),Rand(0,255)
   Oval Rand(0,800),Rand(0,600),Rand(10,50),Rand(10,50)
Next
GrabImage testbild,0,0

DrawImage testbild,0,0
Flip

WaitKey()


; hier beginnt deine Routine

timer = MilliSecs()


gamma = -255
Repeat
    If MilliSecs() > timer + 10 Then
        timer = MilliSecs()
        gamma = gamma + 1

        For i = 0 To 255
            SetGamma(i, i, i, i+gamma, i+gamma, i+gamma)
        Next

        UpdateGamma()
        DrawBlock testbild,0,0
        Flip
    EndIf
    If gamma = 0
        Delay(500)
        Exit
    EndIf
Forever








Repeat
    If MilliSecs() > timer + 10
          timer = MilliSecs()
          gamma = gamma - 1
          For i = 0 To 255
              SetGamma(i, i, i, i+gamma, i+gamma, i+gamma)
          Next

        UpdateGamma()
        DrawBlock testbild,0,0
          Flip

    EndIf
    If gamma = -255
        Delay(500)
        Exit
    EndIf
Forever

Xeres

Moderator

BeitragSa, Dez 04, 2010 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Beispiel läuft bei mir, wie ich es in Erinnerung hatte - abrupte Wechsel hab ich hier nicht.
Was natürlich vermeidbar ist, sind negative Werte... probier das mal:
BlitzBasic: [AUSKLAPPEN]
SeedRnd MilliSecs()
Graphics 800,600

SetBuffer BackBuffer()


Local testbild = CreateImage(800,600), a
For a = 1 To 100
Color Rand(0,255),Rand(0,255),Rand(0,255)
Oval Rand(0,800),Rand(0,600),Rand(10,50),Rand(10,50)
Next
GrabImage testbild,0,0

DrawImage testbild,0,0
Flip

WaitKey()


; hier beginnt deine Routine

Local timer = MilliSecs()


Local gamma = -255, i
Repeat
If MilliSecs() > timer + 10 Then
timer = MilliSecs()
gamma = gamma + 1

For i = 0 To 255
SetGamma(i, i, i, Limit(i+gamma), Limit(i+gamma), Limit(i+gamma))
Next


UpdateGamma()
DrawBlock testbild,0,0
Flip
EndIf
If gamma = 0
Delay(500)
Exit
EndIf
Forever

Repeat
If MilliSecs() > timer + 10
timer = MilliSecs()
gamma = gamma - 1
For i = 0 To 255
SetGamma(i, i, i, Limit(i+gamma), Limit(i+gamma), Limit(i+gamma))
Next
UpdateGamma()
DrawBlock testbild,0,0
Flip

EndIf
If gamma = -255
Delay(500)
Exit
EndIf
Forever


Function Limit(Value%, min%=0, max%=255)
If Value < min Then
Return min
ElseIf Value > max Then
Return max
Else
Return Value
EndIf
End Function
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

diceman

BeitragSa, Dez 04, 2010 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
WOW, Perfekto! Very Happy

Jetzt ist alles klar!
Kriegst 'nen großes Dankeschön in meinen Credits!

Jamagin

BeitragSo, Dez 05, 2010 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mach das mit SpriteCandy-Befehle! Geht voll easy!!

lg. Jamagin
Bevor du etwas neues beginnst, erledige das alte

Hubsi

BeitragSo, Dez 05, 2010 22:48
Antworten mit Zitat
Benutzer-Profile anzeigen
SpriteCandy setzt aber Blitz3D voraus, diceman arbeitet mit BlitzPlus Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Jamagin

BeitragSo, Dez 05, 2010 23:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ups, das hab ich überlesen! Na dann, sorry!

Danke Hubsi für den Hinweis!!

lg. Jamagin
Bevor du etwas neues beginnst, erledige das alte

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group