Obligement - L'Amiga au maximum

Lundi 27 mars 2017 - 14:39  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


En pratique : CanDo - les éditeurs
(Article écrit par Guy Beteille et extrait d'Amiga News - mars 1992)


Pas de réelle programmation pour cette suite de présentation mais un petit retour en arrière pour permettre aux débutants et à ceux qui n'ont pas encore utilisé CanDo de mieux comprendre les facilités qu'offre ce langage.

Il est vrai que les listings peuvent paraître difficiles à un débutant qui hésite à se lancer dans la réalisation d'une application complexe. Mais CanDo permet en fait d'écrire des applications sans avoir à saisir des lignes de programmes (ou très peu). Reportez-vous éventuellement au premier article de cette série.

Prenons le cas d'une application multimédia... une application gérant du texte, des images, des sons, des animations et ceci de manière interactive. Comment faire ? Créer des boutons à cliquer c'est facile. Concevoir qu'à chaque bouton va correspondre une action (par exemple, l'affichage d'une image associée à un son avec en plus l'affichage d'un texte) demande à priori un minimum de connaissance en programmation... Que nenni ! CanDo offre une alternative.

Les éditeurs spécifiques

A droite de l'éditeur de scripts se trouvent douze boutons (visibles quatre par quatre) qui permettent d'accéder à des éditeurs spécialisés.

CanDo

Ces éditeurs généralement utilisables à la souris vont vous permettre d'écrire une partie ou la totalité du script sans pour autant vous demander de connaître la programmation. CanDo va enregistrer vos différentes actions et écrire les lignes de programme correspondantes. C'est pratique mais surtout très utile pour apprendre les premières bases de programmation.

De plus, CanDo peut, si vous le désirez, ajouter des commentaires. Ces commentaires sont bien sûr en anglais. Je suppose tout de même que vous maîtrisez à peu près cette langue pour saisir le sens de ces commentaires car leur lecture est encore un bon moyen de comprendre le script généré par CanDo. Pour bénéficier de ces commentaires, il faut que le fichier CanDo.defaults contienne l'instruction "AutoComment = ON".

Dans les exemples de scripts qui suivent celui de l'éditeur, "Dos" est en anglais afin de vous montrer les commentaires tel que CanDo les insère. Ceux en français ont bien entendu été rajoutés.

Deux de ces boutons saisissent directement des données. Il s'agit du bouton de saisie de coordonnées et de celui de saisie d'un nom de fichier. Leur emploi étant évident, je ne les détaillerai donc pas.

ARexx

Cet éditeur écrit vos scripts contenants des instructions qui permettent par exemple un dialogue entre deux applications. Ici, il faut tout même ajouter une programmation personnelle qui gère les différents messages reçus.
  • ListenTo "ArexxPort" : port qui reçoit les messages.
  • SpeakTo "Dmouse" : port où envoyer les messages.
  • SendMessage "hecto" : envoyer un message.
CanDo

Carte

Cet éditeur gère toutes les commandes relatives aux changements de cartes.
  • GotoCard "Card#2".
CanDo

DOS

Cet éditeur est une simple fenêtre de requête de fichiers qui nous fait choisir le programme à lancer depuis l'application. Lançons par exemple le programme "X" qui se trouve dans le tiroir "C:".

Pour finir, cliquez sur "CD & OK" afin d'utiliser l'option "CD" (commande CD d'AmigaOS). CanDo va alors initialiser la variable "DosVar" et la passer à la commande DOS qui va faire exécuter le programme :
  • Let DosVar = "CD ""C:""" || Char(10) ; CD to the dir.
  • Let DosVar = DosVar || "Stack 4096" || Char(10) ; Change Stack.
  • Let DosVar = DosVar || "Run >Nil: <Nil: ""X""" ; Run the application.
  • Dos DosVar ; feed it all to AmigaDOS.
Champ de saisie

Il s'agit là d'indiquer le contenu d'un champ ou de le récupérer dans une variable. Il existe deux types de champ, texte ou numérique (entier). On suppose bien entendu que vous avez auparavant créé ces champs. L'avantage là encore c'est d'avoir la liste des champs existant et d'éviter une erreur de saisie.
  • SetText "Field#1","Nom" ; placer le texte "Nom" dans "Field#1".
  • Let Variable = IntegerFrom("Field#2") ; récupérer une valeur.
CanDo

Dans cet exemple, le script appelle une suite qui fait quelque chose avec "Variable" :
  • SetInteger "Heure",Variable * 24 ; on met à jour le champ "Heure".
Texte

Cet éditeur est utilisé pour afficher un texte en mode graphique sur la fenêtre de votre application. Il vous demande de choisir le texte, la couleur du crayon, le style d'écriture, la police de caractères et la position sur la fenêtre. Ce qui donne un script de ce style :
  • SetPrintFont "topaz",11 ; police de caractères.
  • SetPrintStyle ITALIC OUTLINE ,2,3 ; style.
  • SetPen 1,0 ; crayon.
  • SetDrawMode JAM1 ; mode.
  • PrintText "Texte à afficher",20,82 ; afficher le texte.
CanDo

Images

Il suffit juste de choisir le nom de l'image à l'aide d'une fenêtre de requête. En général, ce genre de script devrait s'accompagner d'un changement de carte si on veut que l'image ne soit affichée que pour un instant.
  • Nop ; afficher une image.
  • ShowPicture "DH0:Datas/Titre".
Sons (seuls ou liste de sons)

Pour exemple, prenons l'éditeur d'une liste de sons. A vous d'entrer les sons de cette liste en cliquant sur "Dir" et de sélectionner s'il le faut un nouveau canal ou de modifier le volume. Le script va créer une liste de ces sons et les faire entendre ensuite un à un.
  • Set Volume 64 ; volume.
  • SetChannel 0 ; canal.
  • PlaySound "DH0:Datas/Son/Clique",WAIT,363 ; premier son.
  • PlaySound "DH0:Datas/Son/son2",QUEUEPREVIOUS,363 ; deuxième son.
  • Set Volume 51 ; changement de volume.
  • SetChannel 2 ; changement de canal.
  • PlaySound "DH0:Datas/Son/son3",WAIT,363 ; troisième son.
  • SetVolume 22.
  • SetChannel 3.
  • PlaySound "DH0:Datas/Son/son4",WAIT,363.
  • Audio On ; jouer les sons.
CanDo

L'éditeur de graphisme

Attention ! Malgré son aspect, ce n'est pas un mini-programme de dessin. Bien sûr, il vous permet d'exercer vos talents de graphiste, mais surtout il mémorise toutes vos actions pour en faire un script. Chaque action correspond à une commande. Il est amusant car il construit des scripts assez longs sans que vous vous en aperceviez (voir deck Exemple.2).

L'intérêt d'une telle chose ? C'est par exemple de programmer la modification d'une image pendant le déroulement de votre application, de saisir et de manipuler des brosses... De programmer du graphisme pour vos jeux...

Son emploi est simple, il offre deux modes de graphisme "Jam1" et "Complement" ainsi qu'un mode "MultiMode" à essayer. La fonction "Undo" efface une à une toutes vos actions. Une action par clic. C'est très utile car on réussit rarement un dessin complet du premier coup !

L'éditeur de brosse animée

Cet éditeur va écrire toute la programmation qui concerne l'affichage et le déplacement à l'écran d'une brosse animée. Pour ce faire, il faut choisir une brosse et enregistrer tous ces mouvements (par l'enregistrement d'une succession de points qui vont définir un chemin).

CanDo

Quelle est la marche à suivre ? D'abord cliquer sur le bouton "BANIM" pour sélectionner la brosse ensuite choisir le menu "RECORD SPEED" qui va vous permettre de définir à quelle fréquence vont s'enregistrer les points lorsque vous allez enregistrer les mouvements de votre brosse en déplaçant la souris sur l'écran.

Ensuite, cliquez sur premier bouton "RECORD" ce qui fait apparaître votre brosse. Amenez-la sur la position à laquelle vous voulez qu'il apparaisse puis déplacez-la en maintenant le bouton gauche de la souris enfoncé afin de définir le mouvement que devra effectuer la brosse animée. Suivant le réglage de la vitesse d'enregistrement vous enregistrerez plus ou moins de points en fonction de la vitesse à laquelle vous déplacez le pointeur de la souris. Appuyez sur "ESCAPE" pour revenir à l'éditeur. Vous pouvez affiner votre déplacement de la brosse en passant en mode "EDIT", en effaçant ou en ajoutant des points. Le bouton "PREVIEW" vous permet de tester votre enregistrement.

Les menus "LOAD" et "SAVE" de cet éditeur autorisent la sauvegarde ou le changement d'un chemin complet. Le fait de cliquer sur "OK" va produire l'inscription de toutes les commandes que vous avez enregistrées (voir deck Exemple.2).

Les objets brosse animée et le son

Retour au panneau principal de CanDo. On y trouve deux boutons, celui de la brosse animée et du son. Ils appellent un éditeur d'objets. Mais c'est quoi un objet brosse animée ?

C'est tout simplement un ou plusieurs scripts qui seront exécutés en relation avec une animation. Ces scripts pour une brosse animée peuvent être définis au début ou à la fin de l'animation, après chaque image, ou après une image précise. Ainsi, il est possible d'associer différentes actions avec l'exécution d'une animation. Utile dans une présentation, un jeu pour faire par exemple coïncider un mouvement et un son.

Un objet son obéit au même principe, les scripts associés peuvent être exécutés au début ou à la fin du son (voir deck Exemple.2).

CanDo

CanDo

Exemples

Voici deux decks d'exemple que vous pourrez aisément reprendre et adapter, particulièrement le deuxième dont les scripts sont uniquement là pour illustrer la saisie à partir des éditeurs.

Deck "Exemple.1"

Il y a trois cartes dans ce deck, "Card#1", "Card#2", "Card#3". Cette petite application à pour rôle d'identifier un fichier sélectionné (carte 1), de l'afficher s'il s'agit d'une image, d'une brosse ou d'une brosse animée (carte 2), de l'afficher en lecture (carte 3) s'il s'agit d'un fichier texte. Si c'est un son, il est joué sans changement de carte.

Carte "Card#1"

Créer une fenêtre sur l'écran du Workbench, d'une taille assez réduite. Cette fenêtre aura son gadget de fermeture pour pouvoir quitter l'application.

Script "OnCloseButton" de la fenêtre :

Quit

Mettez sur cette fenêtre un bouton "Bouton1" (de type texte par exemple) avec un script qui sera exécuté lorsqu'on relâche le bouton. Il servira à sélectionner un fichier.

Script "OnRelease" de l'objet "Bouton1" :

CanDo

Carte "Card#2"

Pour cette carte, une fenêtre plein écran, sur un écran 320x256 en 32 couleurs. Sans gadget, ni titre, ni bordure et en mode "Backdrop". C'est cette carte qui affichera images, brosses et brosses animées. Attention, une incompatibilité de taille et de résolution risque parfois de réveiller le Guru !

Script "AfterAttachment" de "Card#2" :

CanDo

Cette carte possède un bouton : "BoutonInvisible" dont le rôle et de nous ramener au Workbench (à la carte 1). Il doit être de type "Area", et avoir pour taille l'écran en entier.

Script "OnClick" de "BoutonInvisible" :

Do "Quitter"

Routine "Quitter" :

CanDo

Carte "Card#3"

Créer une fenêtre sur l'écran du Workbench assez grande pour y lire un texte. Cette fenêtre aura le gadget de fermeture (pour quitter la lecture de votre fichier).

Script "OnCloseButton" de la fenêtre :

GotoCard "Card#1"

Script "AfterAttachment" de "Card#3" :

CanDo

Mettez sur cette fenêtre un document "LeDocument" de type Memo afin de pouvoir y lire le texte chargé par le script précédent.

Deck "Exemple.2"

Ce deck avec une seule carte met en valeur l'éditeur de graphisme et les éditeurs d'objets son et brosse animée. Trois maisons sont dessinées, un son est joué puis une brosse est présentée.

CanDo

Carte "Card#1"

Créer une fenêtre plein écran, sur l'écran du Workbench, avec son gadget de fermeture pour pouvoir quitter.

Script "OnCloseButton" de la fenêtre :

Quit

Script "AfterAttachment" de "Card#1" :

CanDo
CanDo

Pour compléter cette carte, définissons deux objets :

1. Un objet de type son, Sound#1. Cet objet est lié au son "DH0:Musique", deux scripts y sont associés, un pour le début du son, l'autre pour la fin. Ces deux scripts auront pour notre exemple la tâche d'écrire un texte sur l'écran.

Script "OnStop" de l'objet "Sound#1" :

PrintText "Fin du son",210,25

Script "OnStart" de l'objet "Sound#1" :

PrintText "Début du son",39,25

2. Un objet de type brosse animée, BrushAnim#1. Cet objet est lié à la brosse animée "DH0:Bird". Mettons ici un petit script qui sera exécuté après chaque changement d'image de l'animation. Dans cet exemple, à chaque battement d'aile d'un oiseau, le son "Boing" est reproduit, provoquant un battement d'aile plutôt lourd !

Script "OnEveryFrame" de l'objet :

PlaySound "DH0:Boing.snd"

Conclusion

Encore un mot pour faciliter votre apprentissage de CanDo. Dans le menu "Edit" du tableau principal utilisez les fonctions Copy/Paste (copier/coller) qui s'appliquent aussi bien à un objet qu'à une carte. D'une application à l'autre vous pouvez utiliser ainsi les mêmes objets ou cartes sans avoir à tout redéfinir. Choisissez l'option "Copy", puis cliquez sur l'icône de l'objet à copier ou sur l'icône carte ce qui fait venir une fenêtre de requête énumérant cartes ou objets. Cliquez sur "Copy". Il ne vous reste plus alors qu'à changer de carte ou d'application puis à sélectionner "Paste". Ainsi vous éviterez de bien fastidieux aller-retour d'un éditeur à l'autre !


[Retour en haut] / [Retour aux articles]