Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Décrire un niveau avec des données

Après cette leçon: Je peux décrire des niveaux par un tableau de données et calculer quand les objets apparaissent.

Leçon de 75 min2 commandesLab de développement de jeux : boucle de jeu, gravité et collisions dans le navigateur

Comment un jeu devient plus difficile

Un niveau de jeu peut se décrire par un tableau de données. Une ligne dit à partir de quel score il commence, à quelle vitesse tombent les objets et à quel rythme ils arrivent. Le code lit le tableau, il n'a pas besoin d'être réécrit.

Les concepteurs changent ainsi la difficulté en modifiant des nombres, et un plan d'apparition se calcule avant même de lancer le jeu.

À la fin de cette leçon

Remarque

Je peux décrire des niveaux par un tableau de données et calculer quand les objets apparaissent.

Mots clés

MotCe que ça veut direExemple
Niveauun palier de difficulté, décrit par des nombres
Échelleun nombre par lequel on multiplie un réglage de base1,25
Intervalle d'apparitionle nombre d'images entre deux objets
Restece qui reste d'une division entière7 % 3
Plan d'apparitionla liste des images où un objet apparaît
Arrondile passage d'un nombre décimal à un nombre entier

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un niveau est une ligne de données

Chaque ligne du tableau porte un nom et le score à partir duquel le niveau commence. Elle porte aussi deux échelles : une pour la gravité, une pour le rythme des objets. Le niveau en cours est la dernière ligne que le score a atteinte.

Pour ajouter un niveau, on ajoute une ligne. Aucune ligne de code ne change.

Exemple : un tableau de niveaux

NiveauÀ partir du scoreÉchelle de gravitéÉchelle d'apparition
Bruine01,01,0
Averse51,41,25
Orage121,81,6
Météores202,42,0

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Exemple : trouver le niveau d'un score

Code: web
<pre id="sortie"></pre>

Avant de lancer les Run

Remarque

Démarrez le labo et ouvrez le terminal. Le script levels.py lit le tableau des niveaux du jeu et calcule la gravité et le rythme de chacun. Il écrit des mots anglais : levels, from score, gravity, a star every, frames.

Calculer gravité et rythme de chaque niveau

Commande
docker exec jupyter python3 steps/levels.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Ce que montrent les quatre niveaux du jeu

Le Run écrit levels: 4, puis une ligne par niveau. Le premier niveau, Drizzle, a une gravité de 0.150 et une étoile toutes les 50 images. Le dernier, Meteors, a une gravité de 0.360 et une étoile toutes les 25 images.

Le jeu devient donc deux fois plus fréquent et plus de deux fois plus rapide, sans une seule ligne de code en plus.

Un reste nul dit quand un objet apparaît

Un objet apparaît quand le numéro de l'image est un multiple de l'intervalle. Avec un intervalle de 40, les objets arrivent aux images 40, 80, 120. On le teste avec le reste de la division : image % 40 == 0.

L'intervalle se calcule en divisant l'intervalle de base par l'échelle, puis on arrondit : 50 divisé par 1,25 donne 40.

Deux langages n'arrondissent pas de la même façon

Le jeu est écrit en JavaScript, dont l'arrondi envoie 2,5 vers 3. La fonction round de Python envoie 2,5 vers 2, car elle choisit le nombre pair. Les deux ne donnent pas toujours le même intervalle.

Pour retrouver l'arrondi de JavaScript en Python, on écrit int(x + 0.5). Le second Run le montre.

Comparer deux façons d'arrondir

Commande
docker exec jupyter python3 -c "print(round(2.5), int(2.5 + 0.5))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une erreur fréquente

Attention

Beaucoup pensent que rendre un niveau plus dur demande du nouveau code. Faux : une ligne de données suffit, si le code lit déjà le tableau. Gardez les règles dans le code et les nombres dans les données.

À propos de ce labo et de sa source: Lab de développement de jeux : boucle de jeu, gravité et collisions dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.