Page 1 sur 1
fade out ChangeGamma()
Publié : mar. 11/mars/2014 16:53
par jmg49
Bonjour,
Je voudrais faire du fade out... mais sur une fenêtre, il semblerait que la fonction ChangeGamma() ne soit utilisable que pour du fullscreen,
existe t il une solution de contournement ou une solution tout court ? une autre fonction ?
Merci bien ,
ps : il y a un tag Résolu pour les topics ? pour ne pas laisser les threads ouverts quand la solution a été apportée
Re: fade out ChangeGamma()
Publié : mar. 11/mars/2014 16:55
par Fig
Netmaestroavait posté ça sur le forum anglais... Tu devrais pouvoir t'en inspirer.
Code : Tout sélectionner
LoadImage(0,#PB_Compiler_Home+"examples\sources\data\Geebee2.bmp")
OpenWindow(0,0,0,512,512,"",#PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_Invisible)
SetWindowLong_(WindowID(0),#GWL_EXSTYLE,GetWindowLong_(WindowID(0),#GWL_EXSTYLE)|#WS_EX_LAYERED|#WS_EX_TOOLWINDOW)
hBrush = CreatePatternBrush_(ImageID(0))
SetClassLong_(WindowID(0),#GCL_HBRBACKGROUND,hBrush)
InvalidateRect_(WindowID(0),0,1)
HideWindow(0,0)
alpha=0
Repeat
ev=WindowEvent()
If ev=#PB_Event_CloseWindow:End:EndIf
SetLayeredWindowAttributes_(WindowID(0),0,alpha,#LWA_ALPHA)
alpha+1
Delay(20)
Until alpha=255 Or GetAsyncKeyState_(#VK_SPACE)&32768
t=ElapsedMilliseconds()
Repeat
ev=WindowEvent()
If ev=#PB_Event_CloseWindow:End:EndIf
Until ElapsedMilliseconds()-t>=2000 Or GetAsyncKeyState_(#VK_SPACE)&32768
CloseWindow(0)
DeleteObject_(hBrush)
; Open screen and go on
Sinon, tu édites le titre du fil et tu mets [résolu] devant...
Résolu: fade out ChangeGamma()
Publié : mar. 11/mars/2014 17:02
par jmg49
Merci de ta réactivité
je vais regarder le code

Re: Résolu: fade out ChangeGamma()
Publié : mar. 11/mars/2014 17:04
par falsam
C'était une question relative à un code 2D ?
Re: fade out ChangeGamma()
Publié : mar. 11/mars/2014 18:17
par jmg49
oui un code 2d tout simple,
j'affiche mon image en DisplaySprite dans un OpenWindowedScreen, je créée un sprite box de couleur noire de même dimension que je superpose en utilisant des timers ,
je voulais maintenant tester en fade in fade out ...
Re: fade out ChangeGamma()
Publié : mar. 11/mars/2014 18:46
par majikeyric
sinon tu fais
en faisant varier l'intensité de de 255 à 0.
Re: fade out ChangeGamma()
Publié : mar. 11/mars/2014 19:11
par falsam
jmg49 a écrit :oui un code 2d tout simple,
Précise le bien lors de la formulation de ta question. Le premier message manquait un peu de précision

Re: fade out ChangeGamma()
Publié : mar. 11/mars/2014 19:50
par Fig
JMG49>J'avais compris que tu voulais que ce soit la fenêtre qui disparaisse...

Re: fade out ChangeGamma()
Publié : mer. 12/mars/2014 9:41
par blendman
Le plus simple est un grand sprite (ou une box()) de la taille de ton écran dont tu changes l'alpha en fonction d'un timer.
Re: fade out ChangeGamma()
Publié : mer. 12/mars/2014 14:32
par jmg49

j'ai essayé avec displaytransparentsprite et modifier la valeur de intensité avec un
Code : Tout sélectionner
Event= WaitWindowEvent(2)
ExamineKeyboard()
For j = 0 To 255
DisplayTransparentSprite(#sprite2,260,150,j)
FlipBuffers ()
ClearScreen($0)
Next j
c'est exactement ce que je vouslais faire ,
mais, par contre , l'inverse ne fonctionne pas ... c'est à dire le fadeout avec :
Code : Tout sélectionner
Event= WaitWindowEvent(2)
ExamineKeyboard()
For h = 255 to 0
DisplayTransparentSprite(#sprite2,260,150,h)
FlipBuffers ()
ClearScreen($0)
Next h
de plus, j'ai cru comprendre en cherchant un peu sur le forum qu'on ne pouvait pas encore faire du Step 0,1 par exemple ?? le thread était vieux , ça a été fixé ?
Merci
Re: fade out ChangeGamma()
Publié : mer. 12/mars/2014 14:37
par Backup
il ne te manque rien la ??
par exemple
c'est pas la peine de lire des vieux Topic, et de les lire en diagonal
il n'est pas possible de faire ceci :
une variable dans le Step
mais c'est pas grave ....
car purebasic permet de changer la valeur du compteur de boucle a la volé
donc au lieu de faire
tu peux faire
Code : Tout sélectionner
calldebugger
For h = 255 to 0 step -1 ; on laisse le step bidon
h=h-10 ; voila le vrai Step !!!
debug h
Next h
; Epb
ça marche dans les 2 sens
Code : Tout sélectionner
calldebugger
For h = 0 to 255
debug h
h=h+10 ; voila le vrai Step !!!
Next h
; Epb
Re: fade out ChangeGamma()
Publié : mer. 12/mars/2014 14:40
par falsam
la boucle for ... next ne fonctionne pas effectivement avec des variables decimales.
Pour ton fade out essaye ajoute step -1