Chipgrid / Documentation / Guides
Le dessin
L’écran, les palettes et les trois calques ; dessiner avec le code, faire bouger l’image, et la faire suivre la musique.
L’écran
L’écran fait 160 × 120 pixels et démarre noir. Rien n’y apparaît si votre code ne le dessine pas, comme sur les vieilles machines, où le programme devait y placer chaque pixel lui-même.
Les positions se comptent en blocs de 5 × 5 pixels : x de 0 à v (31), y de
0 à n (23). Le milieu de l’écran est vers g (16), c (12).
Une couleur est un nombre de 0 à f dans la palette en cours. V règle la palette :
0 NES, 1 Commodore 64, 2 Game Boy, 3 CGA. Sa seconde entrée est la couleur de fond.
Changez de palette et tout ce qui est déjà dessiné change de couleur avec elle.
Les palettes, couleur par couleur.
Les opérateurs de dessin
La plupart dessinent à chaque tick, à l’endroit que disent leurs entrées :
| Opérateur | Dessine | Entrées |
|---|---|---|
X | un pixel (un bloc de 5 × 5) | x, y, couleur |
H | une barre horizontale | x, y, largeur, couleur |
L | une ligne | x1, y1, x2, y2, couleur |
Q | un anneau | x, y, rayon, couleur |
O | un sprite, choisi par une graine | x, y, graine, couleur |
$ | votre propre sprite, dessiné dans les cases sous lui | x, y, largeur, hauteur |
" | du texte | x, y, couleur, puis les lettres |
U | des paillettes au hasard | quantité, couleur |
~ | un motif sur tout l’écran | motif, vitesse, échelle, couleur, étendue |
Ce qui est dessiné reste : l’image le garde. Un pixel dont le x bouge laisse donc une
trace. Branchez une onde sur son x :
V0
.4Wu
.X.c4
T2
4Wu écrit une valeur qui va doucement de 0 à u (30) et revient, une fois par mesure,
directement dans l’entrée x de X. X dessine un bloc jaune sur la ligne c. T2
dissout un peu l’image à chaque tick : la ligne devient une traînée qui s’efface. Sans T,
elle remplirait la ligne.
Effacer et estomper
Tdissout : des pixels au hasard s’éteignent à chaque tick, de0(tout garder) à9(presque aussitôt). Avec une seconde entrée à1, il estompe : chaque pixel descend dans la palette en même temps, pour des lueurs douces.Kefface l’image quand un bang le touche. À côté d’un battement, il efface en rythme.Ffait flasher tout l’écran d’une couleur sur un bang.
Faire bouger l’image
Ceux-ci transforment ce qui est déjà dessiné, à chaque tick :
Mfait défiler : direction (0gauche,1droite,2haut,3bas), quantité en pixels, et une rotation par pas de 10°.M05défile vers la gauche de cinq pixels par tick : le temps qui passe.Zmet en miroir :0la moitié gauche sur la droite,1le haut sur le bas,2les deux, un kaléidoscope. Dessinez dans un coin, obtenez-en quatre.+zoome depuis le centre : une petite chose au milieu devient un tunnel.=fait onduler les lignes de côté, le long d’une onde.%décale chaque couleur dans la palette : le cycle de palette./glitche : des bandes au hasard sautent de côté.
Plusieurs réagissent aussi aux bangs : chaque bang fait tourner M et Z d’un pas, donne
un coup de zoom, fait sauter l’ondulation ou lance une rafale de glitch. Voir la
référence du dessin.
Les calques
L’image a trois calques, vus de face : 2 devant, 1 milieu (l’habituel), 0 fond.
Les pixels vides laissent voir le calque de derrière.
[ règle le calque des opérateurs de dessin qui le suivent, dans le sens de lecture : [0
les envoie au fond, [2 devant. Les effets (T, M, K, Z…) ne touchent que leur
calque : un ciel reste immobile derrière un vaisseau qui laisse une traînée.
~ remplit tout un calque d’un motif mouvant (plasma, rayures, anneaux, damier, bruit,
dégradé, tunnel). Il va de lui-même au calque du fond : il ne cache jamais ce que vous
dessinez.
[0
~0244
[1
.1D4
..?Xgc1
T3
Un plasma au fond, et sur le calque du milieu un bloc blanc qui apparaît à chaque temps
(? ne laisse X dessiner que quand un bang touche la porte) puis se dissout.
] règle la taille de ce qui suit : ]3 dessine sprites et texte trois fois plus grands,
jusqu’à 8.
Vos propres sprites et des mots
$ dessine un sprite que vous écrivez vous-même : ses entrées sont x, y, largeur et
hauteur, et les pixels sont les cases sous lui, un chiffre de couleur chacune (vide =
transparent). L’image dans le code est donc l’image à l’écran. Jusqu’à 16 × 16.
" écrit du texte : x, y, couleur, puis les lettres, jusqu’à 16. _ est une espace. Une
lettre peut venir d’une séquence : c’est un texte défilant.
Des images qui suivent la musique
-
Iécrit le volume actuel d’un canal de la puce (0–f). Placez-le sur un rayon, une largeur ou une couleur :1D4 ..B3C2o ...I2 Qgc.4 T6I2écoute le triangle, qui joue la grosse caisse. Sa valeur tombe dans le rayon de l’anneau : l’anneau saute à chaque coup et se rétracte à mesure que la note s’éteint. -
;est une impulsion : un bang la met à sa crête, puis elle redescend d’un cran tous les quelques ticks. Branchée sur une taille, elle fait battre les choses en rythme. -
Un bang peut piloter l’image directement :
Fflashe,Kefface, et une porte?devant n’importe quel opérateur de dessin ne le fait dessiner que sur le bang.
L’image joue la musique
Ça marche aussi dans l’autre sens. , est un œil : il regarde un bloc de l’image et
écrit en dessous la couleur qu’il voit, ou un bang si quelque chose y est dessiné (troisième
entrée à 1). Dessinez des barres, faites-les parcourir par un œil, et chaque barre est une
note. L’exemple Piano mécanique et le
chapitre du tutoriel L’image joue
montrent comment.
Des idées pour démarrer
Les exemples Visuels couvrent la pluie, les égaliseurs, les raster bars, les tunnels, le plasma, les textes défilants et les kaléidoscopes ; Le code comme œuvre et Petits mondes réunissent le son et l’image.