CoddyRun

Parcours Le casse-briques Étape 1

Étape 1 sur 8

Le terrain et la raquette

Dessiner le terrain et une raquette arrondie en bas de l'écran, qu'on déplace avec les touches Q et D sans qu'elle sorte du cadre.

Notions :toilerectangle_arrondiappuyerlimiterprocédure

Le résultat final du parcours : Le casse-briques
Le résultat final du projet
Ce qu'il faut savoir

On repart des bases du Pong, mais la raquette est maintenant horizontale, en bas du terrain. Sa position est donnée par une seule variable : raqX, le bord gauche de la raquette.

Une procédure pour dessiner

Tout le dessin est rangé dans une procédure, dessinerScene. Au fil des étapes, on y ajoutera la balle, les briques, le score… mais on l'appellera toujours de la même façon : appelle dessinerScene().

rectangle_arrondi(ecran, x, y, largeur, hauteur, rayon, couleur) dessine un rectangle aux coins arrondis : la raquette fait 70 × 10 pixels, avec des coins de rayon 5.

Le clavier

appuyer ['q', 'd'] dans touche attend Q (1) ou D (2). On déplace la raquette de 30 pixels, puis on la garde dans le terrain :

raqX vaut limiter(raqX, 0, 330)

330, c'est 400 (la largeur du terrain) moins 70 (la largeur de la raquette) : au-delà, elle dépasserait à droite.

Pour l'instant, le programme principal redessine la scène après chaque touche. Dès l'étape suivante, ce sera le travail du processus.

Code de départ

Ouvrez CoddyRun et partez d'un programme vide : tout commence ici.

Besoin d'aide ?
Indice 1

La raquette part du milieu : (400 − 70) ÷ 2 = 165.

Indice 2

rectangle_arrondi(ecran, raqX, 275, 70, 10, 5, #1D9BF0) : la raquette est à y = 275.

Indice 3

Le clavier ne répond pas ? Cliquez une fois dans la zone du programme.

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
ecran est une toile
raqX, touche est un nombre

@ Les dessins
procédure dessinerScene()
    effacer(ecran)
    remplir(ecran, #0D1117)
    rectangle_arrondi(ecran, raqX, 275, 70, 10, 5, #1D9BF0)
    affiche ecran
fin procédure

@ Programme principal
dimension(ecran, 400, 300)
raqX vaut 165
appelle dessinerScene()
tant que vrai
    appuyer ['q', 'd'] dans touche
    si touche = 1 alors
        raqX soustrait 30
    sinon
        raqX ajoute 30
    fin si
    raqX vaut limiter(raqX, 0, 330)
    appelle dessinerScene()
fin tant que