Ton premier script
Écris un court script Lua qui dessine un soleil, exécute-le, annule-le et enregistre-le.
Les scripts sont de petits programmes Lua qui dessinent et modifient ton sprite à ta place : tout ce que tu peux faire avec les outils, un script peut le faire avec du code. Ce guide t'explique pas à pas comment en écrire un qui dessine un soleil sur un nouveau calque. Il te faudra environ cinq minutes, et tu n'as pas besoin d'avoir déjà programmé.
Créer un script
Ouvre un sprite (un nouveau de 32×32 convient très bien) et choisis Scripts > Nouveau script.... Nomme le script « Soleil » et appuie sur Créer.
Le panneau Scripts s'ouvre avec quelques lignes de commentaire (des lignes qui commencent par --, que Lua
ignore). Il comprend un éditeur de code, une barre d'outils en haut et une zone de sortie en bas. Dans
la disposition par défaut, il s'ancre à droite du canevas, ce qui te permet de voir les deux en même temps (tu peux le déplacer
comme n'importe quel panneau : voir L'espace de travail).


L'écrire
Remplace les commentaires par ceci :
-- Draws a sun on a new layer.
local layer = app.addLayer("Sun")
local frame = app.getActiveFrameId()
local w, h = app.getCanvasWidth(), app.getCanvasHeight()
local cx, cy = w // 2, h // 2
local r = math.min(w, h) // 4
-- the rays: eight short lines around the middle
for i = 0, 7 do
local a = i * math.pi / 4
app.drawLine(layer, frame,
cx + math.floor(math.cos(a) * (r + 2) + 0.5), cy + math.floor(math.sin(a) * (r + 2) + 0.5),
cx + math.floor(math.cos(a) * (r + 5) + 0.5), cy + math.floor(math.sin(a) * (r + 5) + 0.5),
{ color = "#f4a52e" })
end
-- the disc
app.drawEllipse(layer, frame, cx - r, cy - r, cx + r, cy + r, { color = "#ffd34e", fill = "filled" })
print("Drew a sun " .. (r * 2 + 1) .. " pixels across.")Ce qu'il fait :
app.addLayerajoute un calque nommé « Sun » et renvoie son identifiant ;app.getActiveFrameIddonne l'image sur laquelle tu te trouves. Chaque commande de dessin prend un calque et une image, comme un outil peint sur le calque actif à l'image courante.app.getCanvasWidthetapp.getCanvasHeightlisent la taille du sprite, pour que le soleil s'adapte à n'importe quel canevas. Les coordonnées sont en pixels, avec (0, 0) dans le coin supérieur gauche.app.drawLineetapp.drawEllipsefonctionnent exactement comme les outils Ligne et Ellipse. Tout ce que tu ne précises pas (ici, le pinceau) vient des réglages de l'outil courant.printécrit une ligne dans la zone de sortie.
Pendant que tu tapes, l'éditeur te suggère des fonctions app. ; pointe-en une pour lire ce qu'elle fait.
L'exécuter
Appuie sur Exécuter (le bouton de lecture) dans la barre d'outils du panneau. La zone de sortie affiche « Drew a sun 17 pixels across. », et la chronologie a un nouveau calque, « Sun », avec le soleil sur le canevas à côté du panneau.
Si quelque chose ne va pas, la zone de sortie affiche l'erreur et la ligne où elle s'est produite est mise en évidence. Corrige-la et exécute de nouveau.
L'annuler
Tout ce qu'une exécution modifie forme une seule étape d'annulation : appuie sur Ctrl+Z et le calque et le soleil disparaissent
ensemble. Change une couleur ou le + 5 qui définit la longueur des rayons, et exécute de nouveau.
L'enregistrer
Appuie sur Enregistrer le brouillon (le bouton disquette). Le script est enregistré dans ce navigateur, comme tes sprites,
et un * après son nom dans le panneau signale des modifications non enregistrées. Pour le rouvrir plus tard, choisis
Scripts > Ouvrir mon script... ; les cinq derniers scripts ouverts sont aussi listés juste en dessous dans le
menu Scripts.
Publier partage un script dans la bibliothèque de scripts ; il faut pour cela un compte avec Sync (voir le guide des scripts).
Pour aller plus loin
- Le guide des scripts couvre l'exécution, l'arrêt, les fenêtres de script, les commandes de script et les générateurs officiels.
- L'API de script liste chaque fonction
app., regroupée par usage : dessin, calques, images, calcul de couleurs et plus encore.