CoddyRun

Parcours Le tir spatial Étape 1

Étape 1 sur 6

Le vaisseau dans les étoiles

Dessiner un ciel étoilé et un vaisseau en bas de l'écran, que l'on déplace avec Q et D pendant qu'un processus redessine la scène.

Notions :processustrianglemaximum et minimum

Le résultat final du parcours : Le tir spatial
Le résultat final du projet
Ce qu'il faut savoir

La scène est redessinée en continu par un processus, comme dans le Pong. Le programme principal, lui, ne s'occupe que du clavier : les deux travaillent en même temps et partagent leurs variables.

Le ciel

50 étoiles sont tirées au hasard une seule fois, au démarrage, et rangées dans deux tableaux. Si on les tirait à chaque image, elles scintilleraient dans tous les sens !

Le vaisseau

Un triangle bleu pour la coque, un petit rectangle pour le canon, et une ellipse orange pour la flamme du réacteur. Tout est calculé à partir de x, la position du vaisseau : la procédure vaisseau(x) le dessine où l'on veut.

Rester dans l'écran

vaisseauX vaut maximum(20, vaisseauX - 20)

En allant à gauche, on ne descend jamais sous 20 : maximum garde la plus grande des deux valeurs. À droite, minimum(380, …) fait la même chose.

Pensez à cliquer dans la zone du programme pour que le clavier réponde.

Code de départ

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

Pas encore CoddyRun ?

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écharger
Besoin d'aide ?
Indice 1

Déclarez espace est une toile (400 × 300), vaisseauX, touche est un nombre et etoilesX, etoilesY est un tableau.

Indice 2

Le processus s'appelle Bataille() : il redessine la scène toutes les 60 ms.

Indice 3

La coque : triangle(espace, x, 255, x - 16, 285, x + 16, 285, #1D9BF0).

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
espace est une toile
vaisseauX, touche est un nombre
etoilesX, etoilesY est un tableau

@ Les dessins
procédure vaisseau(x)
    ellipse(espace, x, 290, 4, 6, #FF7A00)
    triangle(espace, x, 255, x - 16, 285, x + 16, 285, #1D9BF0)
    rectangle(espace, x - 3, 250, 6, 12, #E6EDF3)
fin procédure

procédure dessinerEspace()
    effacer(espace)
    remplir(espace, #0D1117)
    pour k de 0 à longueur(etoilesX) - 1
        cercle(espace, etoilesX[k], etoilesY[k], 1, #8B949E)
    fin pour
    appelle vaisseau(vaisseauX)
    affiche espace
fin procédure

@ Le jeu
processus Bataille()
    tant que vrai
        appelle dessinerEspace()
        pause 60
    fin tant que
fin processus

@ Programme principal
dimension(espace, 400, 300)
pour k de 1 à 50
    etoilesX ajoute hasard(0, 400)
    etoilesY ajoute hasard(0, 300)
fin pour
vaisseauX vaut 200
Bataille()
tant que vrai
    appuyer ['q', 'd'] dans touche
    si touche = 1 alors
        vaisseauX vaut maximum(20, vaisseauX - 20)
    sinon si touche = 2 alors
        vaisseauX vaut minimum(380, vaisseauX + 20)
    fin si
fin tant que

Ce parcours te plaît ?

Crée ton compte gratuit et construis le projet en entier, étape par étape.

Créer mon compte gratuit J'ai déjà un compte