problème de non évènement dans boucle [RESOLU]
Publié : sam. 15/oct./2016 8:49
bonjour la réponse à la question va surrement vous sembler évidente, mais la je cale!!!
j'ai simplifié le code pour qu'on voit bien le pb
sur quasi toute la page j'affiche une image, et sur les deux cotés je voulais faire une animation (pour l'instant je n'ai que le cote gauche)
j'ai mis l'animation tout de suite après le repeat car elle dois tourner indépendamment qu'on clique sur des boutons qu'on bouge la souris ou pas...
elle s'anime quelques instants, puis ne s'anime que quand je bouge la souris, je ne sais pas la placer correctement
merci par avance
j'ai simplifié le code pour qu'on voit bien le pb
sur quasi toute la page j'affiche une image, et sur les deux cotés je voulais faire une animation (pour l'instant je n'ai que le cote gauche)
j'ai mis l'animation tout de suite après le repeat car elle dois tourner indépendamment qu'on clique sur des boutons qu'on bouge la souris ou pas...
elle s'anime quelques instants, puis ne s'anime que quand je bouge la souris, je ne sais pas la placer correctement
merci par avance
Code : Tout sélectionner
#title = ""
#versio=""
#author=""
#nbpages = 32
#Dossier = "Sources"
#Extension =".jpg"
#BarreBas = 72 ;manque: voir si barre et taille barre
#AFFICH_IMG =10
#AFFICH_POSI=11
#TailleButton = 50
Dim nameImg.s(#nbpages)
UseJPEGImageDecoder()
;######## repertoire en cours-------------
Buffer.s = Space(256)
Buf_Len = 256
GetCurrentDirectory_(Buf_Len, @Buffer)
Global NomChemin$ = PeekS(@Buffer)
; -----------------------------------------
;####### dimensions ecran -------------------------------
Global EcrL= GetSystemMetrics_(#SM_CXSCREEN)
Global EcrH = GetSystemMetrics_(#SM_CYSCREEN)
Global page_en_cours=1
Global coef_dim_L.f = EcrH / EcrL ;limite ecran 16/9
coef_dim_L = 1-((1-coef_dim_L)/2) ;reajustement
Global coef_dim_H = 1 ;base1
; --------------------------------------------------------
pos_en_cours=1
nameImg(pos_en_cours) = NomChemin$ + "\" + #Dossier + "\" + Str(pos_en_cours) + #Extension
Resultat = LoadImage(pos_en_cours,nameImg(pos_en_cours))
;####### animation --------------------------------
Global xx, yy
Global directionx, directiony
;------------------------------------------------
If InitSprite() = 0 Or InitKeyboard()=0 Or UsePNGImageDecoder() = 0 Or UseJPEGImageDecoder() = 0
MessageRequester("Error","DirectX 7+ is needed.",0)
End
EndIf
If OpenWindow(0, 0, 0, EcrL, EcrH, #title+" "+#versio+" / "+#author , #PB_Window_Tool)
OpenWindowedScreen(WindowID(0),0,#TailleButton/2, (EcrL -EcrL*coef_dim_L)/2, EcrH-#TailleButton/2, 0, 0, 0)
CreateSprite(0, 20, 20)
If StartDrawing(SpriteOutput(0))
Box(0, 0, 20, 20, RGB(255, 0, 155))
Box(5, 5, 10, 10, RGB(155, 0, 255))
StopDrawing()
EndIf
text_posi$ = Str(page_en_cours)+ " / "+#nbpages
ButtonGadget(3, EcrL-55, 0, 50, 25, "Quitter")
;============================================
ImageGadget(0, (EcrL -EcrL*coef_dim_L)/2, #TailleButton/2, EcrL*coef_dim_L + (EcrL -EcrL*coef_dim_L)/2, EcrH*coef_dim_H, ImageID(pos_en_cours))
;==========================================================
Repeat
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
DisplaySprite(0, xx, yy)
xx + directionx
yy + directiony
If xx > 20 : directionx = -2 : EndIf
If xx <= 0 : directionx = 2 : EndIf
If yy > 140 : directiony = -2 : EndIf
If yy <= 0 : directiony = 2 : EndIf
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 3
End
EndSelect
Case #PB_Event_Menu ; We only have one shortcut
SetGadgetText(#AFFICH_IMG, GetGadgetText(#AFFICH_POSI))
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf