FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Double buffer pour picture Emptypar Klaus Hier à 17:01

» item_index
Double buffer pour picture Emptypar leclode Hier à 16:36

» Bataille terrestre
Double buffer pour picture Emptypar jjn4 Hier à 15:01

» SineCube
Double buffer pour picture Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Double buffer pour picture Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Double buffer pour picture Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Double buffer pour picture Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Double buffer pour picture Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Double buffer pour picture Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Double buffer pour picture Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Double buffer pour picture Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Double buffer pour picture Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Double buffer pour picture Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Double buffer pour picture Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Double buffer pour picture Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

 

 Double buffer pour picture

Aller en bas 
5 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Double buffer pour picture Empty
MessageSujet: Double buffer pour picture   Double buffer pour picture EmptyJeu 14 Mai 2015 - 14:47

EDIT:
1) dans le premier code (le feu de bois) il faut presser la barre d'espace pour stabiliser l'image.
2) pour l'autre code (cadran) il faut utiliser les touches + et - du pavé numérique.

Bonjour à tous,

voici une démo pour faire du double buffering, c'est à dire obtenir un affichage sans clignotement.
Code:

'
rem ' Feu-Bois
rem ' code original : jjn4
rem ' ici: http://panoramic.1fr1.net/t629-feu-de-cheminee-impressionniste?highlight=cheminee

' modifié par Silverman pour:
'
' test de double buffering
'
' mai 2015

dim g , i , j , m , k
label fin , dessine

dim tch,oldtch,flip_flop


width 0,800 : height 0,552
' caption 0,"Feu de cheminée impressionniste  (clavier ou clic droit pour arrêter)"
caption 0,"Feu de cheminée impressionniste  (cliquez sur le feu pour arrêter) ---> mode: STANDARD"

' un décor
picture 1 : left 1,1 : top 1,1 : width 1,785 : height 1,510
color 1,236,233,216
2d_target_is 1

2d_pen_color 100,0,0
for i=1 to 50
   2d_line 1,i,800,i
next i

2d_pen_color 150,135,120
for j=1 to 6
   for i=1 to 75
      2d_line 5+int(rnd(3)),i+77*j-25,98+int(rnd(3)),i+77*j-25
      2d_line 685+int(rnd(3)),i+77*j-25,782+int(rnd(3)),i+77*j-25
   next i
next j

' le picture dans lequel on va animer le dessin
picture 2 : left 2,101 : top 2,52 : width 2,585 : height 2,459
on_click 2,fin

' le double_buffer n'est pas directement cliquable, alors on le clone dans
' un picture à qui on affecte l'évènement clic
CLONE_PICTURE(3,2)
on_click 3,fin

' on associe le double_buffer avec le picture qui va être dessiné, ici le picture n°2
INIT_DOUBLE_BUFFER(2)

' dirige les opérations de dessin dans le picture qui va être dessiné
2d_target_is 2


' la boucle d'affichage
hide 3 : show 2 : flip_flop=1 : ' affichage standard par défaut
 repeat

   ' test la barre d'espace
   oldtch=tch
   tch=scancode
   if tch=32
      tch=1
   else
      tch=0
   end_if
   if tch>oldtch
      flip_flop=1-flip_flop
   end_if
  
   '
   gosub dessine
  
   ' choix du type d'affichage
   IF flip_flop=1
      ' AFFICHAGE STANDARD
      if tch=1  :' on répète les commandes suivantes tant que la barre d'espace est appuyé
         hide 3 :' désactive la zone cliquable du double_buffer
         show 2 :' montre le picture dessiné
         caption 0,"Feu de cheminée impressionniste  (cliquez sur le feu pour arrêter) ---> mode: STANDARD"
      end_if
      '
      display :' affiche le dessin
   ELSE
      ' AFFICHAGE AMELIORE
      if tch=1 :' on répète les commandes suivantes tant que la barre d'espace est appuyé
        show 3 :' active la zone cliquable du double_buffer
        hide 2 :' cache le picture dessiné
        caption 0,"Feu de cheminée impressionniste  (cliquez sur le feu pour arrêter) ---> mode: DOUBLE_BUFFER"
      end_if
      '
      DOUBLE_BUFFER(2,0) :' affiche le dessin
   END_IF

until scancode>32
goto fin


END
'
' Les routines
'
sub DOUBLE_BUFFER(picture_source , form_cible)
  2d_image_copy picture_source+5000,0,0,width(picture_source),height(picture_source)
  2d_target_is form_cible
  2d_image_paste picture_source+5000,left(picture_source),top(picture_source)
  '
  2d_target_is picture_source
end_sub


sub INIT_DOUBLE_BUFFER(picture_source)
   hide picture_source
   image picture_source+5000
end_sub


sub CLONE_PICTURE(nouveau_picture,picture_source)
   picture nouveau_picture
   top nouveau_picture,top(picture_source)
   left nouveau_picture,left(picture_source)
   width nouveau_picture,width(picture_source)
   height nouveau_picture,height(picture_source)

end_sub


sub DELETE_DOUBLE_BUFFER(picture_source , form_cible)
   2d_target_is form_cible
   delete picture_source
   delete picture_source+5000
end_sub



dessine:
   2d_pen_width 20
   color 2,0,0,0
   2d_pen_color 205,25,25
   for i=1 to 130
      2d_line 150,i/3+370,450,i/3+330
      2d_line 300+rnd(5),i/2+350,430-rnd(5),i/2+370
   next i
   for i=1 to 30
      2d_line 370+i*2,380+i,470,385
      2d_line 230+i*2,400+i,330,390
   next i
   for j=1 to 7
      m=int(rnd(220)) : k=int(rnd(99))
      for i=1 to 280 step 19
         2d_pen_color 255,255-int(i/2),0
         2d_line 190+m-int(i/5)+int(rnd(3)),i+90,190+m+int(i/5)+int(rnd(3)),i+k+30
      next i
   next j
   2d_pen_color 0,0,0
   2d_rectangle 200,300,201,440 : 2d_rectangle 400,300,401,450
   2d_circle 200,300,10 : 2d_circle 400,300,10
return


fin:
DELETE_DOUBLE_BUFFER(2,0)
terminate

et un test avec un autre code(j'y ai ajouté 3 lignes et en ai remarké 2 pour faire fonctionner le double_buffer) que quelques uns vont surement reconnaitre Very Happy
Code:

    ' code original : ygeronimi
    ' ici : http://panoramic.1fr1.net/t4161-souci-avec-2d_image_paste

    dim sc%,Angl,pict$
    pict$=dir_current$+"\pict.bmp"
    label clic

    height 0,600+38
    width 0,600+16

    Picture 1
    full_space 1
    color 1,0,200,0
    display
    On_Key_down 0,Clic

    image 2
    
    Cadran(1,150,200)


    init_double_buffer(1) :' initialise le double_buffer               <========
    double_buffer(1,0) :' affiche le cadran                            <========
    
'    set_focus 0 :'                                                    <=====

    end

    Clic:
      sc%=scancode
      if sc%=107 : Angl=Angl+0.01 :Move() : end_if
      if sc%=109 : Angl=Angl-0.01 :Move() : end_if
      if sc%=27 : terminate :end_if
      double_buffer(1,0) :' affichage                                  <========
    return

    SUB Cadran(Obj%,Ray%,Ray2%)
      dim_local i%,A,Ang
      dim Cx,Cy,Ax(360),Ay(360),Bx(360),By(360),nbs%
      nbs%=120
    '  reperage du centre de l' objet 2D
      Cx=width(Obj%)/2
      Cy=height(Obj%)/2
      A=(2*acos(-1))/nbs%
    '  marques interieures
      for i%=1 to nbs%
          Ang=A*i%
          Ax(i%)=Cx+(Ray%*cos(Ang))
          Ay(i%)=Cy+(Ray%*sin(Ang))
          display
      next i%
    '  marques exterieures
      for i%=1 to nbs%
          Ang=A*i%
          Bx(i%)=Cx+(Ray2%*cos(Ang))
          By(i%)=Cy+(Ray2%*sin(Ang))
      next i%
    '  tracage du cadran
      2D_Target_is 1
      2D_pen_color 200,200,200
      2D_pen_width 2
      for i%=1 to nbs%
          2D_line Ax(i%),Ay(i%),Bx(i%),By(i%)
      next i%
    '  memorisation du cadran
     2d_image_copy 2,0,0,width(1),height(1) : ' 200,200                
    END_SUB

    SUB Move()
      dim_local Cx,Cy,Mx,My,Nx,Ny,Ray
      Ray=150
      Cx=width(1)/2
      Cy=height(1)/2
      Mx=Cx+Ray
      My=Cy
      Nx=Cx+(Ray*cos(Angl*-1))
      Ny=Cy+(Ray*sin(Angl*-1))
      2d_target_is 1
      2d_image_paste 2,0,0
      2d_pen_color 255,0,0
      2d_pen_width 1
      2d_line Cx,Cy,Mx,My
      2D_LINE Cx,Cy,Nx,Ny
'      set_focus 0 :'                                                  <=====
    END_SUB
    
sub DOUBLE_BUFFER(picture_source , form_cible)
  2d_image_copy picture_source+5000,0,0,width(picture_source),height(picture_source)
  2d_target_is form_cible
  2d_image_paste picture_source+5000,left(picture_source),top(picture_source)
  '
  2d_target_is picture_source
end_sub


sub INIT_DOUBLE_BUFFER(picture_source)
   hide picture_source
   image picture_source+5000
end_sub


sub CLONE_PICTURE(nouveau_picture,picture_source)
   picture nouveau_picture
   top nouveau_picture,top(picture_source)
   left nouveau_picture,left(picture_source)
   width nouveau_picture,width(picture_source)
   height nouveau_picture,height(picture_source)

end_sub


sub DELETE_DOUBLE_BUFFER(picture_source , form_cible)
   2d_target_is form_cible
   delete picture_source
   delete picture_source+5000
end_sub


Dernière édition par silverman le Jeu 14 Mai 2015 - 19:53, édité 1 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 14 Mai 2015 - 15:20

Pas mal du tout, ça améliore nettement le rendu visuel
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 14 Mai 2015 - 16:57

Bonne astuce, merci pour le partage!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 14 Mai 2015 - 19:20

Très bonne astuce et bon résultat.

Pour ceux qui ne trouvent pas comment ça fonctionne:
1) dans le premier code (le feu de bois) il faut presser la barre d'espace pour stabiliser l'image.
2) pour l'autre code (cadran) il faut utiliser les touches + et - du pavé numérique.

A+
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 14 Mai 2015 - 19:55

Merci Jean Claude, en effet c'est un oubli Embarassed

corrigé!
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 14 Mai 2015 - 20:15

Rien de grave Very Happy , mais ça peut éviter de se décourager ou d'éplucher le code pour trouver la solution.

Il n'en reste pas moins que c'est super !

A+

Revenir en haut Aller en bas
Invité
Invité




Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyLun 8 Juin 2015 - 23:35

Bonsoir,
Je viens d'adapter le système de Silverman pour un programme qui a déjà plus de 2000 lignes, et ça ne fait que commencer, et je dois dire que je suis bleffé par le résultat. Aucun scintillement.

J'aime pas trop intervenir, mais quant je constate une telle amélioration, je me dois de féliciter l'auteur de cette astuce.

Je pense pouvoir dire que celle-ci est incontournable avec Panoramic, car c'est vraiment la solution.

Merci Silverman. sunny
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyMar 9 Juin 2015 - 7:16

Je suis d'accord avec toi Cosmos70. C'est vrament pratique et simple pour un résultat vraiment plus agréable visuellement
Revenir en haut Aller en bas
Invité
Invité




Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyMar 9 Juin 2015 - 7:40

Seulement c'est incompréhensible. Cela semble a un bug de Panoramic.

On écrit sur un picture caché. On met le target sur la form pour copier le picture. OK, mais on a aussi le picture suplémentaire qui lui est dessus, mais on ne le voit pas, celui-ci servant à lire la position de la souris. C'est comme si ce dernier était dessus et invisible. Là je suis étonné.

Si c'est un bug, il faut qu'il reste, ou que Jack trouve la solution, car je pense qu'il ne connait pas la réponse pour le scintillement  lié aux pictures. Il n'a à ma connaissance jamais répondu a une question parlant de ce problème.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyMar 9 Juin 2015 - 7:58

C'est juste que tu restes sur le même form et que tu bouges juste la partie que tu en vois (les pictures sont l'une au dessus de l'autre)
Revenir en haut Aller en bas
Invité
Invité




Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyMar 9 Juin 2015 - 8:17

Moi je reste bloqué sur cette explication.

Le picture suplémentaire est 'full_space', et prend toute la place. Il est donc sur la fenêtre, et il n'est pas à 'HIDE' sinon pour la souris ça ne marche pas. Pourtant c'est la fenêtre 0 qu'on voit.
Est-ce que 2D_TARGET_IS 0 met celle-ci devant le picture?
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyMar 9 Juin 2015 - 10:16

oui mais il modifie le TOP du picture pour le placer en dehors de la zone visible.
Revenir en haut Aller en bas
Invité
Invité




Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyMar 9 Juin 2015 - 14:22

Jicehel a écrit:
oui mais il modifie le TOP du picture pour le placer en dehors de la zone visible.

Et bien non! Voici un programme de teste pour être inséré dans le principal. Tu peux voir que le picture 2, le normal, et le picture 3, le miroir, sont tous les deux full_space.
Si tu regardes à la fin la sub: image_copy(), tu remarqueras qu'il n'y a rien d'autre. Cela semble le «2D_TARGET_IS 0», écrit sur 0. A part l'initialisation du picture 3, nul part il intervient, sauf pour prendre les coordonnés de la souris, et pourtant il n'est pas hide, et il prend mouxeX et mouseY sur 3, autrement ça ne marche pas.


Spoiler:
Revenir en haut Aller en bas
Invité
Invité




Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyMer 10 Juin 2015 - 15:15

J'ai fait un petit programme pour bien voir comment cela se comporte. Le but n'est pas de voir si il y a du scintillement ou non, de toute façon, tel que le programme est fait, c'est obligatoire d'en voir. Mais j'aimerai que quelqu'un m'explique pourquoi alors que picture 3 est sur la form 0, on voit la copie du picture 2 sur la forme 0

Le picture 3 est bien présent, en bougeant la souris,le positionnement est retransmis à droite. Si on met hide 3, on ne lit pas les coordonnées.

C'est curieux que cela fonctionne, et c'est bien tant-mieux! Mais je ne comprend pas la logique.

Code:

dim decalage_lig%   ,a$ ,b
width 0, 600 : height 0,400 : caption 0,"sortir par <ESC>"

picture 3 : full_space 3 :width 3,200:' copie miroir
picture 2 : full_space 2 :width 2,200: 2d_target_is 2 : print_target_is 2 : font_size 2,20 : font_bold 2
memo 4 : left 4,250 : height 4,height(2)
image 5
' hide 3
teste()
end
' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

sub teste()
   repeat : until mouse_y_position(2) <50
   dim_local r%,g%,b% , x,y
   repeat
      x = mouse_x_position(3) : y = mouse_y_position(3)
      r% = rnd(255) : g% = rnd(255) : b% = rnd(255) : 2d_fill_color r%,g%,b% : 2d_rectangle 0,0,200,height(2)
      print_locate 2,10 : print r% : print_locate 2,80 : print g% : print_locate 2,200: print b%
      item_add 4,"x="+str$(x)+" y="+str$(y)
      wait 100
      image_copy() :' à mettre en commentaire ou non
   until scancode = 27
end_sub

============================================================
sub image_copy()
   2d_image_copy 5,left(2),top(2),width(2),height(2)
   2d_target_is 0 : 2d_image_paste 5,0,0 : display
   2d_target_is 2 :  hide 2
end_sub
Revenir en haut Aller en bas
Invité
Invité




Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 0:09

Apparemment cela semble normal pour vous.
Étant le seul à ne pas comprendre, je me retire, et heureusement ça marche ainsi.
Sleep
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 0:33

Ne te retire pas mais attends un peu Silverman pourra te répondre à partir de vendredi soir normalement
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 14:46

salut
fini le scintillement ?
Bonne nouvelle !
ce code :
https://panoramic.1fr1.net/t1065-ca-clignotte-a-qui-mieux-mieux
J’espérais le voir amélioré
Mais je ne suis pas assez doué pour le faire moi-même
Si ça tente quelqu'un ;je serais curieux de voir ce que ça donne
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 16:52

Pour répondre à ta question, on part de quel programme: le tient tout en haut ou le dernier posté par Jean-Claude ?
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 17:17

salut
avec le programme revu par jean claude je n'ai aucun scintillement chez moi
avec le premier (en haut) çà clignote un max
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 17:26

heu... je ne crois pas avoir fait quoique ce soit sur ce post, Sergeause.
Tu veux certainement parler de Silverman ou de Cosmos.
Revenir en haut Aller en bas
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 17:58

ça remonte à 2010....
j'ai déjà du mal à me souvenir de ce que j'ai mangéà midi ;alors 6 ans après !
Ce que je voulais dire c'est que la version que tu avais recopiée ne produisait aucun
scintillement
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 18:16

Si tu as recopié le listing de Nardo, le Mar 31 Aoû 2010 - 9:08 ....
C'est vrai que le code d'origine était de Nardo, j'ai regardé le post rapidement et c'est toi qui listait le dernier code, en survolant je ne savais pas s'il avait était modifié ou non par rapport à celui de Nardo... Je lis rapidement rapport à mon environnement de travail Wink
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 18:26

Ha ! OK je comprends, c'est ici https://panoramic.1fr1.net/t1065-ca-clignotte-a-qui-mieux-mieux

En fait le code est de Sergeause modifié par Nardo, JC, Klaus, bref pratiquement personne Very Happy
Même Cosmos est intervenu.

A+
Revenir en haut Aller en bas
Invité
Invité




Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 18:47

Bon, voici le code modifié:
Code:
' je promene ma souris
 '  escape pour sortir
 dim a,s ,c(100),x ,v  ,d(100)
 width 0 ,1750 : height 0,1200
 picture 2 : width 2 ,1650 : height 2,1100 :  2d_target_is 2 : HIDE 2
 picture 3 : width 3 ,1650 : height 3,1100 : ' clone de 2 pour la souris
 
 image 4
 
 v=1

 for x= 1 to 5
     repeat
         display
         if key_down_code  = 27 then terminate
         if mouse_right_down(3)=0
             display
             c(v)=  mouse_x_position(3) : d(v)=    mouse_y_position(3)  :' la souris est testé sur le clone
             2d_fill_color  rnd(255), rnd(255),rnd (255)
             2d_circle c(v),d(v),5
             copy_image() : ' pour afficher sur la fenête 0
         end_if
     until v=5
     v=v+1
 next x
 
 end
 ===============================
 sub copy_image()
    2d_image_copy 4,left(2),top(2),width(2),height(2)
    2d_target_is 0: 2d_image_paste 4,left(2),top(2) : ' on recopie sur la fenêtre
    2d_target_is 2
 end_sub

Mais je ne comprend toujours pas pouquoi le picture 3, on ne le voit pas.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture EmptyJeu 11 Juin 2015 - 22:49

Mais pourquoi faire simple quand on peut faire compliqué ?

Code:

dim x0,y0
full_space 0 : 2d_fill_color 255,0,0
caption 0,"Déplacer la souris .... <CLICK> pour terminer"
picture 10 : full_space 10 : color 10,0,0,0 : 2d_pen_color 255,255, 0
repeat
   x0 = mouse_x_position(10) : y0 = mouse_y_position(10)
   2d_circle x0, y0, mod(x0,15)- mod(y0,15)
until scancode <> 0
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Double buffer pour picture Empty
MessageSujet: Re: Double buffer pour picture   Double buffer pour picture Empty

Revenir en haut Aller en bas
 
Double buffer pour picture
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Nouvelle commande pour PICTURE
» Taille des polices pour Print dans un Picture
» EURÉKA! Le double clic!!!
» Label en double
» presque le double clic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: