Parcours Le ciel étoilé Étape 1
Le ciel de nuit et la lune
Peindre un ciel de nuit qui s'éclaircit vers l'horizon avec dix bandes de couleur, puis poser une lune avec son halo et ses cratères.
Notions :toileboucle pourrgbrgbacercle
Tout se dessine sur une toile de 400 × 300 pixels. Le point (0, 0) est en haut à gauche : x va vers la droite, y vers le bas.
Un dégradé fait de bandes
Un vrai ciel de nuit est plus sombre en haut qu'à l'horizon. On l'imite avec dix bandes de 30 pixels de haut, chacune un peu plus claire que la précédente. Plutôt que d'écrire dix rectangles, une boucle pour les dessine :
pour b de 0 à 9
rectangle(ciel, 0, b * 30, 400, 30, rgb(10 + b * 3, 15 + b * 5, 40 + b * 9))
fin pour- la bande n°
bcommence ày = b * 30: 0, 30, 60… jusqu'à 270 ; rgb(rouge, vert, bleu)fabrique une couleur à partir de trois nombres de 0 à 255. Quandbaugmente, les trois composantes augmentent : la bande s'éclaircit, surtout dans le bleu.
La lune et son halo
La lune est un cercle crème avec trois petits cercles un peu plus foncés pour les cratères. Le halo est un grand cercle transparent dessiné avant elle : rgba(255, 246, 213, 0.12) est la même couleur crème, mais opaque à 12 % seulement. On voit le ciel au travers.
Ouvrez CoddyRun et partez d'un programme vide : tout commence ici.
Il te faut le logiciel pour faire cette étape. Il est gratuit : crée ton compte pour le télécharger, puis reviens ici, ta place t'attend.
Créer mon compte et téléchargerIndice 1
Commencez par dimension(ciel, 400, 300) : sans elle, la toile ne fait que 100 × 100 pixels.
Indice 2
Le halo se dessine avant la lune : cercle(ciel, 330, 60, 42, rgba(255, 246, 213, 0.12)).
Indice 3
Rien ne s'affiche ? La dernière ligne doit être affiche ciel.
Voir la solution complète
Essayez d'abord par vous-même : c'est en cherchant qu'on apprend. La solution sert à vérifier ou à se débloquer.
@ Les déclarations
ciel est une toile
@ Le ciel de nuit
dimension(ciel, 400, 300)
// dix bandes, de plus en plus claires vers l'horizon
pour b de 0 à 9
rectangle(ciel, 0, b * 30, 400, 30, rgb(10 + b * 3, 15 + b * 5, 40 + b * 9))
fin pour
@ La lune
cercle(ciel, 330, 60, 42, rgba(255, 246, 213, 0.12))
cercle(ciel, 330, 60, 28, #FFF6D5)
cercle(ciel, 322, 52, 5, #EDE3BF)
cercle(ciel, 340, 68, 4, #EDE3BF)
cercle(ciel, 334, 46, 3, #EDE3BF)
affiche ciel