0005 Gestion de la SOURIS

Les bases du gfa

0005 Gestion de la SOURIS

Messagede shadow272 » Ven 17 Oct 2008 11:16

On va aborder ici la gestion de la SOURIS ce qui nous permettra de voir la sortie de boucles plus complexes par la suite.

Les instructions :

MOUSEX = position X de la souris


MOUSEY = position Y de la souris


MOUSEK = état des BOUTONS de la souris

MOUSE x,y,k = position X, Y de la souris et état des boutons le tout donné par les variables X - Y et K.

SETMOUSE x,y qui permet de positionner le curseur de la souris où l'on désire.

En basse résolution MOUSEX ou la variable X peut avoir une valeur comprise entre 0 et 319

En moyenne et en haute résolution MOUSEX ou la variable X peut avoir une valeur comprise entre 0 et 639


En basse et en moyenne résolution MOUSEY ou la variable Y peut avoir une valeur comprise entre 0 et 199

En haute résolution MOUSEY ou la variable Y peut avoir une valeur comprise entre 0 et 399


MOUSEK ou la variable K peuvent avoir les valeurs suivantes.

- 0 = aucun bouton de la souris enfoncé

- 1 = bouton gauche de la souris enfoncé

- 2 = bouton droit de la souris enfoncé

- 3 = les deux boutons de la souris enfoncés


Réalisons un petit programme qui teste la souris en utilisant MOUSE x,y,k qui reprend en une fois tout les paramètres de cette souris (je vous expliquerai la boucle plus loin).

CLS
DO
__MOUSE x,y,k
__PRINT AT(1,1);”Position X - “;x;” “
__PRINT AT(1,3);”Position Y - “;y;” “
__PRINT AT(1,5);”Boutons - “;k;” “
LOOP

Steem_006.jpg



Déplacez la souris et cliquez sur les boutons pour voir les paramètres s'afficher en temps réel.


Pour sortir du programme pressez simultanément les touches “Shift”,”Ctrl” et “Alt”

Il y a aussi l'instruction SETMOUSE x,y qui permet de positionner le curseur de la souris où l'on désire.
(merci Cooper)
SETMOUSE 159,100
Positionnera le curseur de la souris au milieu de l'écran en basse résolution.


Plus clairement par rapport à ce que Rajah nous explique et pour les novices voici un exemple :

Code: Tout sélectionner
DO
  ~GRAF_MKSTATE(mx%,my%,mk%,k%)
  IF mx2%<>mx% OR my2%<>my% OR mk2%<>mk% OR k2%<>k%
    PRINT AT(1,1);mx%;"  "
    PRINT AT(1,3);my%;"  "
    PRINT AT(1,5);mk%
    PRINT AT(1,9);k%
    mx2%=mx%
    my2%=my%
    mk2%=mk%
    k2%=k%
  ENDIF
LOOP


mx% = position X de la souris
my% = position Y de la souris
mk% = état des boutons de la souris (1, 2 ou 3)
k% = état des touches SHIFT,CONTROL et ALTERNATE du clavier
k% = 1, SHIFT droit enfoncé
k% = 2, SHIFT gauche enfoncé
k% = 4, CONTROL enfoncé
k% = 8, ALTERNATE enfoncé

Un 3 voudrait dire que les 2 SHIFT sont enfoncés.
Il suffit de cumuler les valeurs pour savoir quelle combinaison de touches sont enfoncées.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Un ATARI, le GFA c'est le bonheur
Avatar de l’utilisateur
shadow272
Administrateur du site
 
Messages: 211
Inscription: Mer 15 Oct 2008 21:40
Localisation: Hainaut, Belgique

Re: 0005 Gestion de la SOURIS

Messagede Cooper » Mer 22 Oct 2008 11:29

Il y a aussi l'instruction SETMOUSE x,y qui permet de positionner le curseur de la souris où l'on désire.
Cooper
 
Messages: 74
Inscription: Dim 19 Oct 2008 09:57

Re: 0005 Gestion de la SOURIS

Messagede Rajah » Lun 27 Oct 2008 00:07

Un petit bémol : les fonctions MOUSEX & co sont à proscrire si vous voulez coder propre.

Le GFA-Patch justement les désactive, pour que ça puisse tourner sur les OS "modernes".
Rajah
 

Re: 0005 Gestion de la SOURIS

Messagede shadow272 » Lun 27 Oct 2008 07:47

Petite question Rajah
Mouse x,y,k est-il aussi à proscrire ?
Si oui, on peut les remplace par quoi ?
Un ATARI, le GFA c'est le bonheur
Avatar de l’utilisateur
shadow272
Administrateur du site
 
Messages: 211
Inscription: Mer 15 Oct 2008 21:40
Localisation: Hainaut, Belgique

Re: 0005 Gestion de la SOURIS

Messagede Rajah » Lun 27 Oct 2008 14:05

shadow272 a écrit:Mouse x,y,k est-il aussi à proscrire ? Si oui, on peut les remplace par quoi ?


http://www.umich.edu/~archive/atari/Pro ... apa107.lzh

Il faut savoir que le GFA peut être patché : en général, il s'appelle GFAPASIC, GFAPLIB, etc pour faire la différence avec les exécutables de base. Le patch s'applique pour les version 3.5 et suivantes. La dernière est la 3.6TT

Donc si une fonction ne semble pas fonctionner : vérifiez que votre GFA n'a pas été trafiqué.

Liste des fonctions désactivées :
    CRSCOL CRSLIN MOUSE MOUSEK MOUSEX MOUSEY SETMOUSE RC_COPY SHOWM HIDEM SPRITE ACHAR ACLIP ALINE APOLY ARECT ATEXT BITBLT HLINE L~A PSET PTST GET PUT SGET SPUT FILESELECT FILESELECT #

Fonctions à employer uniquement pour les fichiers (et non pas la saisie) :
    INPUT INPUT$ LINE INPUT

Propositions de remplacement :
    MOUSE/MOUSEK/MOUSEX/MOUSEY -> (AES) GRAF_MKSTATE
    SETMOUSE -> (AES) APPL_TPLAY
    SHOWM/HIDEM -> (AES) GRAF_MOUSE
    FILESELECT -> (AES) FSEL_INPUT
    FILESELECT # -> (AES) FSEL_EXINPUT
    SPRITE -> (VDI) vro/vrt_cpyfm
    ACHAR -> (VDI) TEXT
    ACLIP -> (VDI) CLIP
    ALINE -> (VDI) LINE
    APOLY -> (VDI) POLYLINE
    ARECT -> (VDI) PBOX
    ATEXT -> (VDI) TEXT
    BITBLT -> (VDI) BITBLT q%(),z%(),d%()
    HLINE > (VDI) LINE
    PSET -> (VDI) PLOT oder v_pmarker bei grob > 200 Punkten
    PTST -> (VDI) POINT
    GET/PUT/SGET/SPUT -> (VDI) BITBLT
    RC_COPY -> (VDI) BITBLT

Donc si vos RC_COPY marchent, les MOUSEx marcheront. Mais il faudra rester sur un Atari classique (emploi de la ligne A, qui a été désapprouvée ensuite) et surtout dire de virer NVDI avant de lancer vos chef d'oeuvre.
Rajah
 

Re: 0005 Gestion de la SOURIS

Messagede shadow272 » Lun 27 Oct 2008 14:42

Merci de ta réponse rapide et claire ;)
Un ATARI, le GFA c'est le bonheur
Avatar de l’utilisateur
shadow272
Administrateur du site
 
Messages: 211
Inscription: Mer 15 Oct 2008 21:40
Localisation: Hainaut, Belgique

Re: 0005 Gestion de la SOURIS

Messagede shadow272 » Mar 28 Oct 2008 16:41

Tuto mis à jour.

Par contre, j'aimerais un exemple avec RC_COPY et le même avec son remplaçant BITBLT que je n'ai jamais utilisé :oops: Siouplait 8-)
Un ATARI, le GFA c'est le bonheur
Avatar de l’utilisateur
shadow272
Administrateur du site
 
Messages: 211
Inscription: Mer 15 Oct 2008 21:40
Localisation: Hainaut, Belgique

Re: 0005 Gestion de la SOURIS

Messagede Cooper » Mar 28 Oct 2008 22:55

Réponse très instructive Rajah, merki :)
Cooper
 
Messages: 74
Inscription: Dim 19 Oct 2008 09:57


Retourner vers Tutos

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron