Partenaires : MandelbrotDazibao ProgBoards Sekren
www.neliger.com
Page précèdenteImprimer...Envoyer un email à l'auteurInformations
Moteur de recherche :    
Lea-Linux.org
LinuxFrench.net
Linux-France.org

MandrakeLinux.com
RedHat.com
Debian.org

KDE.org
Gnome.org
WindowMaker.org
IceWM.org

Gimp.org
Mozilla.org
OpenOffice.org
XineHQ.de
XMMS.org

CybWarrior.com
Magic Mushrooms
"Open Source"

Capturer une zone graphique
En débutant dans les graphismes sous QBasic, on peut avoir à faire face à une multitude de problèmes. Par exemple, imaginons que différents graphismes recouvrent l'écran, et que l'on affiche une fenêtre par dessus, nous voulons que d'un simple clic de souris la fenêtre disparaisse instentanément en dévoilant les graphismes du dessous.

affichage d'une fenêtre puis disparition de celle-ci


Pour ceux qui connaissent le basculent entre les modes d'écran je précise que l'on travail en mode 9 ou 12, donc pas de ça ici!

D'autres autres me dirons probablement qu'il suffit d'effacer l'écran et de réafficher les graphismes, mais il faudrais pour cela que tout les graphismes de l'écran soit en mémoire, et QBasic ne permet qu'un accès très limité à la mémoire vive.

Mais alors?
Déterminons en premier lieu les étapes à suivre:

- On copie la zone de l'écran derrière la fenêtre
- On affiche la fenêtre
- L'utilisateur clique
- On trace un rectangle noir sur la zone occupée par la fenêtre
- Puis on replace la zone capturée

Tout d'abord on dimensionne un tableau à l'aide de la commande DIM tableau(valeur) (pour la valeur du tableau essayez une valeur de plus en plus grande jusqu'à ne plus obtenir de message d'erreur).



- Pour capturer une zone de l'écran on utilise GET (x1, y1)-(x1, y2), tableau
- On tracere le rectangle à l'aide de LINE (x1, y1)-(x1, y2), couleur
- Puis on replace la zone graphique avec PUT (x1, y1), tableau
Exemple:
Pour une fenêtre dont les coordonées seront: x1 = 200; y1 = 100; x2 = 440; et y2 = 380

Affichage de la fenêtre:

DIM fondFenetre(10000)
GET (200, 100)-(440, 380), fondFenetre
** on affiche la fenetre **


Effacer la fenêtre:

LINE (200, 100)-(440, 380), 0, BF
PUT (200, 100), fondFenetre


Et voilà, avec cette routine vous pourrez effectuer des basculements rapides entre des fenetres, des objets, ou des décors, tout ça avec une fluidité étonnante.

ATTENTION: le tableau nécéssaire occupe beaucoup de place mémoire et capturer l'écran entier est impossible avec le peu de mémoire que nous offre un module QBasic.
Ce site a été entièrement conçu sous Linux
neliger.com v5.1 © EGGERMONT 2002-2008 - Tous droits réservés
Hébergé par eTigris Get Firefox