Page 1 sur 1

bindevent() et screen

Publié : mar. 30/mars/2021 8:15
par blendman
Salut

D'après la doc, quand on utilise le screen avec une fenêtre, il faut utiliser une double boucle comme ceci :

Code : Tout sélectionner

Repeat
    
    Repeat
      
      event = WindowEvent()
      
      Select event
        Case #PB_Event_Gadget
          
        Case #PB_Event_Menu
    
        Case #PB_Event_CloseWindow
          quit = 1
      EndSelect
      
      
    Until quit=1 Or event = 0
    
    ClearScreen(RGB(100, 100, 100))
    DisplayTransparentSprite(0, 0, 0)
    FlipBuffers()
    
  Until quit=1
voir ici :
https://www.purebasic.com/documentation ... en.pb.html
; Always process all the events to flush the queue at every frame
Donc, dès que j'utilise un screen et menu/gadgets, j'utilise cette double boucle, car j'ai remarqué que sans, il m'arrive d'avoir des comportements d'events parfois un peu bizarres à l'écran (retard d'events ou event qui sont "perdus", etc..).

Mais je me pose la question :
peut-on utiliser en plus (donc, toujours avec cette double boucle) un bind (bindevent() ou autre) et un screen ?
car si j'ai bien compris cela ajoute un évènement à la pile des évènements en cours.

Je suppose que oui, si on garde la double boucle, mais je préfère être certain :)

merci pour vos réponses.

Re: bindevent() et screen

Publié : mar. 30/mars/2021 9:50
par MLD
Bonjour bledman
Perso je n'aime pas bindevent, qui pour moi équivaut a un Thread.
Avoir un tas de boucles devient vite un peu le boxon :roll:
je pense qu'il est mieux d'avoir une boucle générale bien pensée, que des binds pas forcément bien synchros. Mais je n'est peut-être que je n'est rien compris 8O :oops:

Re: bindevent() et screen

Publié : mar. 30/mars/2021 12:23
par G-Rom
MLD a écrit :Bonjour bledman
nouveau héros d'afrique du nord ? hahaha
qui pour moi équivaut a un Thread.
non. c'est juste un lien entre un event et une fonction
peut-on utiliser en plus (donc, toujours avec cette double boucle) un bind (bindevent() ou autre) et un screen ?
oui

Re: bindevent() et screen

Publié : mar. 30/mars/2021 17:22
par MLD
Salut G-Rom
Toujours aussi moqueur :lol:
non. c'est juste un lien entre un event et une fonction
Pourtant certains l'utilise comme si c'était un Thread, et je persiste a dire que lorsqu’il il en a beaucoup cela pose un problème de synchros.
Bonne soirée du bled Breton.

blendman: Mille Excuses pour avoir un peu égratigner ton pseudo :oops: :oops:

Re: bindevent() et screen

Publié : mar. 30/mars/2021 18:05
par microdevweb
Perso je n'utilise que les Bind, ce qui me permet de développé en mode MVC (model, view, controler).

Maintenant je ne l'ai jamais testé avec un screen.

Re: bindevent() et screen

Publié : mar. 30/mars/2021 18:48
par G-Rom
MLD a écrit :Salut G-Rom
Toujours aussi moqueur :lol:
non. c'est juste un lien entre un event et une fonction
Pourtant certains l'utilise comme si c'était un Thread, et je persiste a dire que lorsqu’il il en a beaucoup cela pose un problème de synchros.
Bonne soirée du bled Breton.

blendman: Mille Excuses pour avoir un peu égratigner ton pseudo :oops: :oops:
Je me moque pas , je rigole , c'est pas pareil , j'ai failli mettre du café partout ^^
Pour en revenir au bind , il ne devrait pas y avoir de problème de synchro , je suppose qu'en interne , le bind fonctionne sur l'appel de windowevent() ou waitwindowevent() , vérifie (toujours en interne) la liste des bind et appel la fonction adéquat au bind, cela permet "d'allégé" la boucle tradi des events , mais en aucun cas , ne la remplace. cela me semble évident.

Bonne soirée de Normandie ;)