fade out ChangeGamma()
fade out ChangeGamma()
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
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()
Netmaestroavait posté ça sur le forum anglais... Tu devrais pouvoir t'en inspirer.
Sinon, tu édites le titre du fil et tu mets [résolu] devant...

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
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Résolu: fade out ChangeGamma()
Merci de ta réactivité
je vais regarder le code
je vais regarder le code

- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Résolu: fade out ChangeGamma()
C'était une question relative à un code 2D ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: fade out ChangeGamma()
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 ...
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 ...
- majikeyric
- Messages : 602
- Inscription : dim. 08/déc./2013 23:19
- Contact :
Re: fade out ChangeGamma()
sinon tu fais
en faisant varier l'intensité de de 255 à 0.
Code : Tout sélectionner
DisplayTransparentSprite(#Sprite, x, y Intensite)
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: fade out ChangeGamma()
Précise le bien lors de la formulation de ta question. Le premier message manquait un peu de précisionjmg49 a écrit :oui un code 2d tout simple,

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: fade out ChangeGamma()
JMG49>J'avais compris que tu voulais que ce soit la fenêtre qui disparaisse... 

Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Re: fade out ChangeGamma()
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.
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: fade out ChangeGamma()

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
Merci
Re: fade out ChangeGamma()
Code : Tout sélectionner
For h = 255 to 0
il ne te manque rien la ??

par exemple
Code : Tout sélectionner
For h = 255 to 0 step -1

il n'est pas possible de faire ceci :
Code : Tout sélectionner
For h = 255 to 0 step A
mais c'est pas grave ....
car purebasic permet de changer la valeur du compteur de boucle a la volé
donc au lieu de faire
Code : Tout sélectionner
For h = 255 to 0 step A
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
Code : Tout sélectionner
calldebugger
For h = 0 to 255
debug h
h=h+10 ; voila le vrai Step !!!
Next h
; Epb
Dernière modification par Backup le mer. 12/mars/2014 14:44, modifié 2 fois.
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: fade out ChangeGamma()
la boucle for ... next ne fonctionne pas effectivement avec des variables decimales.
Pour ton fade out essaye ajoute step -1
Pour ton fade out essaye ajoute step -1
Code : Tout sélectionner
For i=255 To 0 Step - 1
Debug i
Next
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%