Aide pour débutants, et question débiles ;)
Publié : jeu. 07/avr./2016 22:03
Hello les codeurs!
Voici que je retourne à mes premiers amours (coding il y a 20 ans sur Amiga) et vu que j'ai tout perdu je me relance doucement avec PureBasic ! Je m'appelle Marc et je vous remercie d'avance pour votre aide
Avant de commencer à coder mes effets j'ai lu la doc en ligne, en tout cas la partie la plus simple (je ne me lance pas dans la 3D)
Mon idée c'est de faire une sorte d'intro avec des effets sur des pixels, lignes, dots ...
Par contre j'ai des questions toutes c..... sur certaines fonctions
Je me suis fait un petit affichage d'une image sur un fond blanc (ouhaaa) en utilisant le code ci dessous et un fichier PNG sur fond bland de taille 507x173
Mon premier problème c'est que sur ma machine j'ai un effet de flickering pendant le fading, on voit le logo clignoter au moins une fois ... Normal ? Pas normal ?
Seconde question, si je passe en fullscreen, on me dit 'pas de gadgetlist ...', comment je peux faire sans me retaper tout le code ou sans GROS changement ?
Pour finir j'ai une question plus 'générale'. imaginons un code avec 4 effets, que vous souhaitez déclencher sur une variable X (X pouvant être un temps en secondes). Comment faites vous votre boucle de repeat until keypressed (code faux mais c'est l'algo qui m'interesse)
Voici que je retourne à mes premiers amours (coding il y a 20 ans sur Amiga) et vu que j'ai tout perdu je me relance doucement avec PureBasic ! Je m'appelle Marc et je vous remercie d'avance pour votre aide

Avant de commencer à coder mes effets j'ai lu la doc en ligne, en tout cas la partie la plus simple (je ne me lance pas dans la 3D)
Mon idée c'est de faire une sorte d'intro avec des effets sur des pixels, lignes, dots ...
Par contre j'ai des questions toutes c..... sur certaines fonctions
Je me suis fait un petit affichage d'une image sur un fond blanc (ouhaaa) en utilisant le code ci dessous et un fichier PNG sur fond bland de taille 507x173
Mon premier problème c'est que sur ma machine j'ai un effet de flickering pendant le fading, on voit le logo clignoter au moins une fois ... Normal ? Pas normal ?
Seconde question, si je passe en fullscreen, on me dit 'pas de gadgetlist ...', comment je peux faire sans me retaper tout le code ou sans GROS changement ?
Code : Tout sélectionner
UsePNGImageDecoder()
InitSprite()
Enumeration
#Win
#ImgGadget
#MyImg
EndEnumeration
Global logo = CatchImage(#PB_Any, ?datalogo)
Procedure Fade(speed)
For i = 1 To 255 Step 5
If StartDrawing(ImageOutput(#MyImg))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawImage(ImageID(logo), 0, 0, 507, 173)
Box(0, 0, 507, 173, RGBA(255,255,255,i))
StopDrawing()
EndIf
SetGadgetState(#ImgGadget, ImageID(#MyImg))
Delay(speed)
Next
EndProcedure
;==== gestion du fullscreen ou non
FS=1
If FS=1
OpenWindow(1,0,0,640,480,"",#PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_WindowCentered)
OpenWindowedScreen(WindowID(1),0,0,640,480,true,0,#PB_Screen_SmartSynchronization)
ShowCursor_(0) ;-no mouse cursor!
Else
OpenScreen(640,480,32,"",#PB_Screen_SmartSynchronization,60)
ShowCursor_(0) ;-no mouse cursor!
EndIf
;==== méthode pour éviter le flahs ecran noir avant l'affiche du logo sur fond blanc
ClearScreen($FFFFFF)
CreateImage(#MyImg, 507,173, 32)
FlipBuffers()
;==== affichage du logo
ImageGadget(#ImgGadget, (640-507)/2,(480-173)/2, 507, 173, 0)
;==== on lance le fading out (on va vers le blanc total)
Fade(25)
;==== timer general pour les effets
FPSTimer = ElapsedMilliseconds()
Start_Time.f = ElapsedMilliseconds()
Repeat
Current_Time.f = ElapsedMilliseconds()
Time_Passed.f = Current_Time - Start_Time
Until Time_Passed.f=5000 Or GetAsyncKeyState_(#VK_ESCAPE)
End
DataSection
datalogo:
IncludeBinary"gfx\logo.png"
EndDataSection
Code : Tout sélectionner
repeat
effet()
delay(x)
effet2()
delay (x)
until keypressed