Maintenant que vous savez comment utiliser l'éditeur, vous aurez envie de commencer à programmer, mais retenez un peu votre besoin de gratification. Avant de commencer à programmer, vous devez d'abord réfléchir à ce que vous attendez de votre programme. D'accord, ce que vous voulez vraiment, c'est expérimenter AMOS et voir ce qu'il peut faire. Très bien, allez-y. Parcourez le chapitre sur les commandes AMOS et leur fonction, et voyez ce qui se passe. Vous pouvez tester n'importe quelle commande pour voir ce qu'elle fait réellement, mais certaines commandes ne fonctionnent pas sans un peu de préparation. Par exemple, vous ne pouvez pas charger une image à moins d'en avoir une prête sur disquette ! Vous pouvez vouloir charger et jouer de la musique, mais vous devrez avoir préparé de la musique à charger, et ainsi de suite.
Une fois que vous vous serez amusé avec AMOS et que vous aurez évacué votre curiosité, vous reviendrez à ce livre et voudrez savoir comment faire tout cela correctement.
La façon dont votre programme est organisé à l'écran, ce qui va où, est appelée la structure de votre programme. Les programmes AMOS ont une structure similaire à d'autres types de BASIC, et le pire lorsqu'on essaie d'expliquer la meilleure façon de structurer un programme, c'est qu'il n'y a pas vraiment de meilleure façon.
Vous pouvez écrire le programme en un seul bloc, avec des lignes de code appelant d'autres lignes de code dans tous les sens, et c'est ce que j'appellerais une approche linéaire. L'autre grande méthode consiste à utiliser des sous-programmes et des procédures (Procs), où vous avez un programme principal qui pilote toutes les autres parties du programme, lesquelles peuvent être ajoutées ou retirées sans trop nuire à la structure. C'est cette approche modulaire que je préfère. En fait, en parcourant ce livre, vous trouverez des routines que vous pourrez inclure dans vos programmes, et si vous suivez l'approche modulaire, il sera bien plus facile de les intégrer.
Les procédures sont au c?ur de ce qui rend AMOS si puissant en tant que langage de développement. En fait, toutes les versions bien structurées du langage BASIC disposent d'un système de procédures, et AMOS ne fait pas exception. Mais si vous venez d'un BASIC plus simple, vous ne vous rendrez peut-être pas compte de ce que vous manquez si vous ne les utilisez pas.
Utiliser les Procs est facile. Imaginez un Proc comme une commande que vous avez ajoutée à AMOS qui fait quelque chose que vous aimeriez que le langage sache faire. Si chaque fonction de votre programme est un Proc, vous pouvez écrire chaque segment séparément et les tester un à un, puis tout combiner dans un grand programme. Au lieu de déboguer tout le programme, vous corrigez les erreurs au fur et à mesure, évitant ainsi les problèmes plus tard.
Pour utiliser un Proc, vous devez d'abord le définir, ce qui se fait avec la commande :
Procedure <nom>
Cela peut être placé au début ou à la fin du code, peu importe, AMOS trouvera la définition tant qu'elle existe. Une fois le Proc défini, il peut être appelé soit par :
Proc NOM
soit simplement en utilisant le nom du Proc.
Pour démontrer ce principe, prenez ce petit programme de démonstration :
OYEZ Procedure OYEZ Print "Phil South ! Et pourquoi pas ?" End Proc
La procédure est ici une simple routine qui affiche la chaîne "Phil South ! Et pourquoi pas ?" via la commande Print. Chaque fois que vous utilisez le nom de la procédure, ici OYEZ
, vous obtenez le même résultat que si vous aviez tapé la ligne Print
dans le programme.
Bien entendu, la routine à l'intérieur d'une procédure peut contenir plus qu'une simple commande, voire un petit sous-programme complet, et c'est là toute l'idée. Dans un programme, vous avez une procédure pour chaque partie que vous appelez ensuite depuis une boucle principale. Exemple :
MAIN: CHECK_COLLISION MOVIT SHOT Goto MAIN Procedure CHECK_COLLISION ... End Proc Procedure MOVIT ... End Proc Procedure SHOT ... End Proc
Une fonctionnalité pratique des procédures dans AMOS est qu'elles peuvent être "pliées" pour rendre les listings plus lisibles. Le pliage est activé par la commande Fold/Unfold du menu AMOS. Cela permet de réduire la procédure à une seule ligne. Une fois pliée, vous ne voyez plus que :
Procedure OYEZ
Cela fonctionne exactement de la même manière, mais sans afficher tous les détails. Vous pouvez aussi protéger vos procédures en les verrouillant avec le programme Lock.AMOS
disponible sur votre disquette AMOS.
Vous pouvez sauvegarder une procédure seule sous forme de fichier, par exemple :
SCREENSAVEPROC.AMOS
Il n'est pas nécessaire que le fichier porte le même nom que la procédure, mais cela aide à les identifier. Ensuite, vous pouvez les combiner via la commande Merge
dans vos programmes.
Une variable déclarée dans une procédure est locale par défaut, ce qui signifie qu'elle est invisible en dehors de celle-ci. Si vous voulez qu'elle soit accessible ailleurs, vous devez la déclarer comme partagée :
SNOUT=10 : SNOOT=15 : SNOUT$="Phil" Procedure SNOUTY Shared SNOUT, SNOOT, SNOUT$ Print SNOUT, SNOOT, SNOUT$ End Proc
Vous pouvez aussi utiliser le mot-clé Global
pour rendre une variable accessible partout :
X=20 : Y=50 Global X,Y TRYIT Print X,Y Procedure TRYIT Print X,Y End Proc
Pour accéder à une variable globale depuis une procédure, utilisez le mot-clé Shared
:
Procedure TRYIT Shared X,Y Print X,Y End Proc
Vous pouvez passer des valeurs à une procédure comme ceci :
Procedure NIT[A$,X,Y] ... End Proc N$="Phil" : A=45 : B=3 NIT[N$,A,B] ...ou directement : NIT["Phil",45,3]
Vous pouvez sortir d'une procédure sans atteindre End Proc
avec la commande Pop Proc
:
PITIT Print "Proc terminée" Procedure PITIT Input A$ If A$="oui" Then Pop Proc Print "Proc NON terminée" End Proc
AMOS propose plusieurs types de boucles : While...Wend
, Repeat...Until
, et Do...Loop
. Exemple :
X=0 While X<10 Inc X Print X Wend Print "terminé"
X=0 Repeat Inc X Print X Until X>10
X=0 Do Inc X Print X If Mouse Key=1 Then Exit Loop
X=0 Do Inc X Print X Exit If X>10 Loop
AMAL est le langage d'animation d'AMOS. Vous pouvez l'insérer ligne par ligne :
A$="ligne de code AMAL" A$=A$+"autre ligne AMAL"
Ou utiliser l'éditeur AMAL pour créer des animations enregistrées en .abk et accédées depuis la mémoire.
La musique peut être jouée depuis une banque mémoire :
Music 1 Music Off
Pour les modules de trackers :
Track Load "mod.nomdufichier",3 Track Play Track Loop On Track Stop
Il existe des variables alphanumériques (avec $) :
A$="Truc"
...et numériques :
Z=3
Pour les nombres réels (avec décimales), utilisez #
:
P#=3.142
Pour les notations binaires et hexadécimales :
%Binaire $Hexa
C'est à peu près tout ce que vous devez savoir pour démarrer. Maintenant commence le voyage pénible à travers AMOS, en espérant visiter tous ses petits coins importants.