( 14 octobre, 2008 )

Animations avec font graphique

Animations avec font graphique

Tout d’abord l’image de la font proposée par Arklif et nécessaire pour réaliser ces animations.

arklif001.jpg

Il va faloir premier réorganiser cela car les lettres ne sont pas allignée et n’ont donc pas un pas régulier ce qui va compliquer l’affichage.

Je m’y met avec DELUXE PAINT

arklif0021.jpg

J’en ai profité pour faire les masques, on ne sait jamais . . . .

Ce qui donne au final

arklif004.jpg

Voilà j’ai trouvé, les fichiers Zipés passent sans problème, dézipez et vous aurez la PI1 .

arklif2.zip

 Petit programme réalisé en GFA 3.5F avec un INPUT pour afficher le texte graphique.

arklif01.zip

 Une autre manière avec un scroll horizontal droite/gauche.

arklif02.zip
 

( 14 octobre, 2008 )

Entrées au clavier

Entrées au clavier

Abordons la manière d’entrer quelque-chose au clavier

INPUT X

X peut être une variable numérique ou alphanumérique ($)

INPUT a

Permet d’entrer un chiffre ou un nombre.

Si vous y entrez une ou plusieures lettres, cela provoquera une erreur

INPUT a$

Permet dentrer des chiffres et/ou des lettres

Je vous conseillerai donc le deuxième exemple avec variable alphanumérique.

Si toutefois vous avez besoin d’un variable numérique, voici comment transformer une variable alphnumérique en variable numérique.

CLS
INPUT a$
a=VAL(a$)
PRINT a

L’inverse est possible aussi

CLS
INPUT a
a$=STR$(a)
PRINT a$

Un petit programme reprenant les INPUT

CLS
PRINT « Quel est ton nom : »;
INPUT nom$
PRINT
PRINT « Quel est ton age : »;
INPUT age$
age=VAL(age$)
cls
PRINT « Tu t’appelle « ;nom$; » et tu as »;age; » ans
PRINT
PRINT « Clique à la souris pour terminer »
WHILE MOUSEK=0
WEND

( 13 octobre, 2008 )

Les autre boucles

Les autre boucles

DO / EXIT IF / LOOP

REPEAT / UNTIL

WHILE / WEND

 

DO
__PRINT « Hello – « ;

Quitte la boucle si pression sur le bouton gauche de la souris
__EXIT IF MOUSEK=1
LOOP

 

REPEAT
__PRINT « Hello – « ;

Quitte la boucle si pression sur le bouton gauche de la souris
UNTIL MOUSEK=1

Répète la boucle tant que MOUSEK n’est pas égal à 1
WHILE MOUSEK<>1
__PRINT « Hello – « ;
WEND

Le résultat est le même pour les 3 exemples.

Il s’affiche le texte « Hello –  » jusqu’à ce qu’on presse le bouton gauche de la souris (MOUSEK)

( 12 octobre, 2008 )

Gestion de la SOURIS

Gestion de la SOURIS

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 mots clef :

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.

 

 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

steem0011.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 »

( 11 octobre, 2008 )

Boucles FOR NEXT

Boucle FOR NEXT

On utilisera ici une variable numérique « i » qui pourait être « atari » ou tout autre mot mais pas un mot clef du GFA

Ces variables ont uniquement des valeurs numériques .

 

Ces boucles permettent de répéter X fois une commande ou une série de commandes.

Elle se présente sous la forme :

FOR i=1 TO 100
__( Commandes )
NEXT i

Dans ce cas, les commandes seront répétées 100 fois.

Le première fois, la variable numérique i sera égale à 1, la deuxième elle sera égale à 2, etc jusque 100.

On peut aussi y mettre un pas d’incrémentation « STEP » suivit d’une valeur

FOR i= 1 TO 12 STEP 3
NEXT i

Appliquons la à l’exemple précédent :

CLS
t$=”Hello”
FOR i= 1 TO 12 STEP 3
__PRINT AT(i,i);t$
NEXT i
~INP(2)

 On remarque directement le gain en lignes de code, cela se répercutera aussi dans la taille du programme.

Le STEP doit être de valeur négative si le FOR est inversé

FOR i= 12 TO 1 STEP -3
NEXT i

 

On peut coder :

FOR i= 1 TO 12
NEXT i

Par contre celui-ci ne fonctionnera pas

FOR i= 12 TO 1
NEXT i

Il faut coder :

FOR i= 12 TO 1 STEP -1
NEXT i

 

En décrémentation, le STEP est obligatoire.

( 11 octobre, 2008 )

Les variables alphanumériques

Les variables alphanumériques

 

Remplaçons le texte par une variable alphanumérique, cela peut simplifier le code.

La variable alphanumérique se présente sous la forme « texte/chiffres »suivi de « $ ».

Faites toutefois attention à ne pas utiliser des mots clef du GFA Basic, c’est pourquoi nous utiliserons ici t$ 

 

Exemple précédent

CLS
PRINT AT(1,1); »Hello »
PRINT AT(3,3); »Hello »
PRINT AT(6,6); »Hello »
PRINT AT(9,9); »Hello »
PRINT AT(12,12); »Hello »
VOID INP(2) ‘ ou ~INP(2)

 

Remplacé par :

CLS
t$= »Hello »
PRINT AT(1,1);t$
PRINT AT(3,3);t$
PRINT AT(6,6);t$
PRINT AT(9,9);t$
PRINT AT(12,12);t$
~INP(2)

On aurait pu mettre t$= »Coucou c’est moi », ce qui aurait donné :

steem001.jpg

( 11 octobre, 2008 )

Les débuts en GFA

Début de programmation:

 

Quelques instruction de base que vous retrouverez fréquement:

CLS

Permet d’effacer l’écran

 

PRINT

Permet d’écrire des caractères alphanumériques à l’écran

 

PRINT AT(x,y);

Permet aussi d’écrire des caractères alphanumériques à l’écran mais à un endroit définit par le programmeur.

X = position horizontale et Y = position verticale en partant du coin supérieur droit.

 

VOID INP(2)

Attend la pression d’une touche pour continuer le programme.

Peut aussi s’écrire ~ INP(2)

Petit exercice avec ces instructions et leur résultat à l’écran.

EX 1

CLS
PRINT « Hello »
PRINT « Hello »
PRINT « Hello »
PRINT « Hello »
PRINT « Hello »
VOID INP(2)

steem002.jpg

 

Ex 2 en ajoutant un point/virgule à la fin des 4 premiers PRINT
CLS
PRINT « Hello »;
PRINT « Hello »;
PRINT « Hello »;
PRINT « Hello »;
PRINT « Hello »
VOID INP(2)

steem003.jpg

 

Ex 3, comme le 2 mais en ajoutant  » –  » à afficher

CLS
PRINT « Hello – « ;
PRINT « Hello – « ;
PRINT « Hello – « ;
PRINT « Hello – « ;
PRINT « Hello »
VOID INP(2)

steem004.jpg

 

Ex 4 avec PRINT AT

CLS
PRINT AT(1,1); »Hello »
PRINT AT(3,3); »Hello »
PRINT AT(6,6); »Hello »
PRINT AT(9,9); »Hello »
PRINT AT(12,12); »Hello »
VOID INP(2)

steem005.jpg

 

( 10 octobre, 2008 )

Lecture d’un fichier PI1

On va voir ici comment afficher et sauver une image PI1

En version FICHIER :

Efface l’écran
CLS
Début de boucle
DO
Sélecteur de fichiers préréglé pour les PI1
  FILESELECT « *.pi1″, »",img$

Lecture d'un fichier PI1 dans G001 Lecture d'un fichier PI1
Sort de la boucle si un fichier est sélectionné
EXIT IF img$<>«  »
Fin de boucle
LOOP
Ouvre sur le #1 un ficher nom « img$ » en lecture « i »
OPEN « i »,#1,img$
Crée un variable « c$ » de 32 espaces
c$=SPACE$(32)
Positionne le pointeur du fichier sur le 2ème octet
SEEK #1,2
Charge depuis cette position 32 octets et met les dans la variable c$
BGET #1,VARPTR(c$),32
Positionne le pointeur du fichier sur le 34ème octet
SEEK #1,34
Charge depuis cette position 32000 octets et met les dans XBIOS(2)
BGET #1,XBIOS(2),32000

Ferme le #1
CLOSE #1
Envois la palette de couleurs dans XBIOS(6)
VOID XBIOS(6,L:VARPTR(c$))
 dans G001 Lecture d'un fichier PI1

Attend la pression d’une touche
VOID INP(2)

 

En version INLINE

Efface l’écran
CLS
Là où on doit charger l’image PI1 (voir * ci dessous)
INLINE img%,32066
Variable pour la palette de couleur
c$=SPACE$(32)
Adresse de cette variable
c%=V:c$
Copie un partie de la PI1 dans la variable couleur (32 octets)
BMOVE img%+2,c%,32
Copie l’image vers l’adresse écran (32000 octets)
BMOVE img%+34,XBIOS(2),32000
Envois la palette de couleurs dans XBIOS 6
VOID XBIOS(6,L:c%)
Attend la pression d’un touche
VOID INP(2)

 

 * Comment télécharger un INLINE ?

Tapez la ligne de code  » INLINE img%,32066″, positionnez le curseur sur cette ligne et pressez « HELP » sur ST ou « Page Up » sous STEEM.

Un menu apparait alors en haut.

image3.jpg

 Cliquez sur « Load » et allez chercher votre image PI1 à l’aide du sélecteur d’objet.


 

ppt Image utilisée dans cet exemple renomer PPT en PI1

( 10 octobre, 2008 )

Bonjour tout le monde !

GFA

 

Basic

 

 

Bonjour tout le monde ! dans Page d'acueil 94205070306084551

 

|