bindevent() et screen

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

bindevent() et screen

Message 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.
Avatar de l’utilisateur
MLD
Messages : 1105
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: bindevent() et screen

Message 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:
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: bindevent() et screen

Message 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
Avatar de l’utilisateur
MLD
Messages : 1105
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: bindevent() et screen

Message 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:
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: bindevent() et screen

Message 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.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: bindevent() et screen

Message 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 ;)
Répondre