Version pdf de l'article

Premier programme avec Scractch
Une Animation

Scratch comme tout environnement / langages de programmation, possède ses avantages et ses désavantages.

Le point fort de Scratch se situe dans ce qu'on appelle la programmation événementielle. Concrêtement cela signifie que Scratch est particulièrement adapté aux types de programmes qui sont pilotés par des événements. Un évènement sera par exemple : une touche du clavier a été pressée ou la position limite a été atteinte

Pour les programmes plus séquentiels ou les programmes qui travaillent sur des données, pour les programmes de gestion en relation avec des bases de données : Scracth et son apprentissage ne sont pas adaptés.

Pour la programmation de jeux, le pilotage de robots ou les animations, Scratch est très efficace, simple et accessible à tous.

La découverte de scratch à travers une animation

L'interface

Une fois scracth installé et démarré (cf Instalaltion de scracth, la première chose à connaitre est la possibilité de passer de la langue française à la langue anglaise (et vice versa) en cliquant sur l'icone de la mapmonde en haut à gauche dans la barre de menus.
De manière générale il est préférable de prendre l'habitude travailler en anglais sous Scracth car la quasi totalité des langages de programmation utilisent des mots anglais dans leur syntaxe. Sous Scracth, à tout moment il est possible de basculer d'une langue à l'autre.


Les différentes zones de l'interface de scratch

L'interface de Scratch est composée de plusieurs zones.
La zone entourée en rouge ci-dessus est la zone des menus habituelle ou on trouvera les fonctionnalités générales de l'application : sauvegarde / chargement d'un programme, copier/coller...
La zone entourée en bleu ci-dessus est la zone de rendu du programme. C'est ici que l'on verra le résultat de notre programme Scratch.
La zone entourée en jaune ci-dessus, est la zone ou on définit (place) des lutins (sprites). A chaque lutins (sprite), Scratche va associer un programme que l'on va écrire dans la zone rose (ci-dessus) au moyen de commandes que l'on trouve dans la zone verte (ci-dessus). La zone rose ci-dessus, est la zone ou l'on va écrire les programames à partir de commandes trouvées dans la zone verte.
La zone verte contient les commandes que l'on place dans la zone rose par glisser déplacer.

Parmi les avantages de l'apprentissage de la programmation avec scratch, on trouve le fait que seules les commandes définies dans la zone verte permettent de générer un programme; Aussi ces commandes sont utilisées par simple "glisser déplacer".
Les problèmes d'erreur de syntaxe sont donc évités et on peut se concentrer sur la programmation elle même.
Pas besoin de librairies, de dépendances, d'intégration ni paramétrage, on peut se concentrer sur le développement du cœur de l'application.

Au niveau des menus, on retiendra le menu "fichier" qui permettra de sauvegarder ou charger un programme

Une animation simpliste comme premier programme

Après avoir cliqué sur le sprite (lutin) du chat pour le sélectionner, se rendre dans la zone d'écriture du programme (zone rose ci-dessus) A noter qu'à ce stade on a qu'un seul sprite (lutin), celui du chat. Cependant par habitude il faut commencer par cliquer sur le sprite que l'on veut piloter. En effet, on verra par la suite qu'il y a un programme par sprite (lutins)
Dans la partie centrale de l'interface, on va sélectionner des commandes que l'on glissera dans la zone de programme, et la suite de ces commandes va créer le programme qui par exemple pilotera le lutin (sprite)

Dans la zone centrale, sélectionner la catégorie de commande "Apparence" (Looks") et choisir la fonction "dire ... pendant ... secondes"

Une fois la fonction dans l'interface, modifier les paramètres et placer "bonjour" durant 10Secondes
Un double click sur la commande "dire "bonjour" pendant 10 secondes fait parler le chat dans l'interface de rendu.

Une des forces de Scractch réside dans la gestion multitâche des sprites (lutins) de manière totalement transparente pour l'utilisateur.
(Cette facilité est liée au fait que scratch a été développé en ActionScript sous Flash qui était dédié à la réalisation d'animations et programmes pour le web.
Aujourd'hui encore, on trouve des animations et jeux complets, à commencer par Scratch).



Ajout d'un sprite(lutin) à la zone de rendu (la scène)

L'ajout d'un sprite (lutin) se fait en cliquant sur une des options de la zone new sprite (nouveau lutin) en rouge ci-dessus.
On peut soit choisir un sprite dans la bibliothèque, soit rechercher dans nos prite ou en dessiner un.
Pour notre exemple, nous choisirons le dinosaure dans la partie animal de la bibliothèque de sprites. (Cliquer sur la zone newesprite ci-dessus - puis sur le dinosaure ci-dessous)

Un programme par sprite (par lutin)

Maintenant, dans la fenêtre de rendu (la scène) nous avons 2 sprites(lutins) : le chat et le dinosaure.
Au niveau de la programmation, il n'y a qu'un seule sprite actif. Celui qui est sélectionné dans la fenêtre du bas.
C'est une notion importante à connaitre dans Scratch, on associe un programme (morceau de programme à un sprite
Par exemple, à ce stade, si je clique sur le dinosaure dans la partie basse, il n'y a pas de prorgramme affiché.
Si par contre je clique sur le chat, notre premier programme "dire bonjour pendant 10 s"dinosaure .

Pour faire parler le dinosaure, après l'avoir sélectionné dans la zone de sprite, on dépose un brique identique à celle utilisée
par le chat et cette fois on place dans la partie texte de la brique : "bonjour je suis le dinosaure"
Cette fois quand on clique sur la brique , c'est le dinosaure qui affiche son texte dans la sone de rendu (la scène)

Synchroniser avec un premier programme

A ce stade, nous avons 2 sprites (lutins) avec chacun une action leur permettant de dire bonjour.
Pour transformer en programme, nous devons choisir un des deux sprites, par exemple le chat.
Dans Scratch, de manière générale, on démarre un programme par une clic sur le drapeau située en haut
à droite de la fenêtre de rendu(la scène), tandis que le point rouge arrête/termine un l'exécution d'un programme.

A ce stade, le clic sur le drapaeu ne démarre pas le programme, pour fonctionner on doit détecter cet évènement,
par exemple dans le programme associé au chat.

Reprenons ce qu'on a effectué sachant que cette opération sera nécessaire dans tous les programmes sous scratch.
Après avoir sélectionné le lutin (le chat)(en vet ci dessus) , dans la zone centrale ou se trouve les commandes (onglet scripts),
on a choisit une commande de type évènement(en vert ci dessus). Parmi les possibilités, il y a l'évènement : quand drapeau "vert" est cliqué.
Après l'avoir sélectionné, on attache, dans la zone de programme, la commande "dire bonjour pendant 10 secondes " à l'évènement quand
drapeau vert est cliqué (en rouge ci-dessus).

A partir demaintenant lorsqu’on clique sur le drapeau vert, le programme du chat s'éxécute.
Le dinosaure lui ne fait rien. Essayons de l'associer au même évènement que le chat : drapeau vert pressé

On utilise le même procédé, après avoir pris soin de sélectionner le lutin (sprite) dinosaure.

Lorsqu'on démarre le programme au moyen du drapeau vert, cette fois les deux lutins "parlent en même temps".
Ils on répondu tous les deux au même évènement (drapeau pressé).

Pour obtenir une animation, ou pour plus tard programmer des jeux, nous avons besoin de solutions
pour synchronyser les programmes et dans note cas que les 2 personnages ne parlent pas en même temps.
Pour une animation, on peut utiliser des temporisations, tandis que pour des jeux on utilisera forcément
des évènements que nous aborderons après avoir vu la solution des temporisations.

Nous avons vu dans nos blocks "dire bonjour" que l'on pouvait spécifier la durée d'atffichage (ex 10 secondes).
Donc si le chat dit bonjour pendant 10 secondes, il suffit de faire attendre le dinaosaure 10 secondes pour prendre la parole
Dans la ribrique contrôle des briques de scratch, il y à la brique : attendre xx secondes.
Pour notre exemple, nous allons donc faire parler le chat pendant 5secondes, dire au dinosaure d'attendre 7 secondes (
5 secondes de parole du chat + 2 secondes sans parler) et ensuite de répondre


Les sprites et les costumes

Avant de regarder la notion de message pour synchroniser différemment et plus "correctement" la parole des personnages (sprites),
regardons la notion de costume.
Après avoir cliqué sur le dinosaure dans la partie des sprites, la sélection de l'onglet costume dans la zone de commande fait apparaitre
une suite de dessin du dinosaure dans des positions différentes.


Un sprite (lutin) possède plusieurs costumes (rendu), et on peut les sélectionner depuis la zone programme.
Cela permet par exemple d'animer un sprite : on le dessine dans les différentes positions (costumes) et on boucle sur les costumes.
Pour notre exemple nous allons modifier le costume du sprite Dinosaure afin qu'il ait une position différente en parlant


Terminer l'animation en utilisant les messages

A ce stade notre première animation fonctionne et nous pourrions la laisser telle que.
Elle présente néanmoins un défaut qu'on pourrait solutionner de différentes manières : si on modifie le temps de parole du chat,
il faut remodifier le temps d(attente du dinosaure avant qu'il ne prenne la parole.
Une des façon est de créer notre propre évènement : "fin de parole du chat".
Piloter les sprites et de manière générale les éléments d'un programme tel que Scratch est naturel. On parle de programmation évènementiel.
C'est à dire que des morceaux de programmes sont exécutés en réponses à des évènements, tels que : une touche du clavier est pressée ou
la position limite est atteinte....

Les évènements sont transmis par des messages : exemple envoyer à tous le message "j'ai fini de parler". L’évènement j'ai fini de parler à lieu
Depuis Scratch, sélectionner le "sprite" chat, puis la rubrique "évènement" et la brique "envoyer à tous message"


Sélectionner nouveau message et appeler le message : finparole1

Après avoir cliqué sur le sprite du dinosaure, dans la rubrique scripts-évènements, un brique appelée "quand je reçois finparole1" est maintenant
disponible, on peut l'utiliser et adapter la liste des instructions. L'attente de 7 seconde n'est plus nécessaire, le code sera apellée à la fin
de la parole du chat par le message "fin parole1"


En conclusion

Scracth se montre donc particulièrement efficace pour créer des animations en quelques clics de souris, et permet d'aborder simplement des notions de programmation
tels que la programmation évènementielle sans passer par un premier apprentissage contraignant de la syntaxe des langages habituels
Il faut par contre se méfier et ne pas vouloir tout programmer avec sratch ni apprendre à développer uniquement avec Scratch.
C'est pourquoi d'autres et langages sont aussi abordés sur le site de veiginfo.
Notre crédo, l'informatique pour tous à tous les niveaux.

@2018 - veiginfo.fr - dépannage informatique à domicile - Assistance et formation informatique - Veigy-Foncenex et environs
Loading...