Просмотр исходного кода

updated readme

chap-3-start-JP
Lapin-Blanc 3 лет назад
Родитель
Сommit
68c913cd47
1 измененных файлов: 22 добавлений и 16 удалений
  1. +22
    -16
      README.md

+ 22
- 16
README.md Просмотреть файл

@@ -4,16 +4,18 @@

Que se passe-t-il lorsque Titi tombe du bas de l'écran ? En ce moment, vous le perdez probablement pour toujours. Essayons de faire quelque chose de mieux.

Ajoutez cette nouvelle fonction après la fonction on_mouse_down :
> Ajoutez cette nouvelle fonction après la fonction on_mouse_down :

```python
def reset():
print("Retour au départ...")
titi.speed = 1
titi.center = (75, 350)
tube_superieur.center = (300, 0)
tube_inferieur.center = (300, tube_superieur.height + gap)
tube_inferieur.center = (300, tube_superieur.height + ecart)
```
Chaque ligne de cette fonction attribue une valeur. D'abord, elle ramène la vitesse de Titi à ce qu'elle était au départ, puis place son centre à une position x,y. Elle ramène également les tuyaux à leur point de départ. Si vous essayez le jeu maintenant, vous verrez que rien n'a changé. N'oubliez pas qu'une fonction ne fait rien tant que vous ne l'avez pas appelée. Appelons-la à partir de la fonction de mise à jour si Titi quitte l'écran.

Chaque ligne de cette fonction attribue une valeur. D'abord, elle ramène la vitesse de Titi à ce qu'elle était au départ, puis place son centre à une position **(x,y)**. Elle ramène également les tuyaux à leur point de départ. Si vous essayez le jeu maintenant, vous verrez que rien n'a changé. N'oubliez pas qu'une fonction ne fait rien tant que vous ne l'avez pas appelée. Appelons-la à partir de la fonction de mise à jour si Titi quitte l'écran.

> Ajoutez ceci à la fin de la fonction de mise à jour :

@@ -32,7 +34,9 @@ Attention à bien respecter les *indentations* à l'intérieur de la fonction *u
## Voler correctement !
En ce moment, Titi l'oiseau semble se téléporter vers le haut lorsque vous cliquez sur l'écran. Il faudrait idéalement qu'il se déplace un peu plus doucement. La raison pour laquelle il semble se déplacer instantanément est cette ligne :

`titi.y -= 50`
```python
titi.y -= 50
```

Cela lui fait déplacer un ensemble de 50 pixels d'un seul coup, ce qui n'est pas très fluide ! Lorsqu'un vrai oiseau bat des ailes, cela modifie sa vitesse et non sa position. Le changement de position n'est qu'un effet secondaire de la vitesse.

@@ -47,39 +51,41 @@ Essayez et vous verrez que lorsque vous cliquez maintenant, il va juste monter e

Nous avons besoin d'un peu de *gravité* pour le faire redescendre après chaque envolée.

Créez une variable appelée **gravité** à la fin de votre fichier :
> Créez une variable appelée **gravite** à la fin de votre fichier :

`gravité = 0.3`
`gravite = 0.3`

Nous utiliserons cette variable pour modifier la vitesse de l'oiseau à chaque image.

Utilisez cette variable au début de la fonction de mise à jour :
> Utilisez cette variable au début de la fonction de mise à jour :

```python
titi.speed += gravity
titi.speed += gravite
```
Essayez de changer la valeur de la gravité pour voir l'effet qu'elle a.

> Essayez de changer la valeur de la gravité pour voir l'effet qu'elle a.

Maintenant, cet oiseau est plus réaliste et le contrôler demande maintenant un peu plus d'habileté. Vous pouvez essayer de voler entre les tubes, mais nous n'avons toujours rien fait pour vous empêcher de voler droit dans les tuyaux. Nous allons bientôt corriger cela.

## Rationnalisation du code
Vous avez peut-être remarqué qu'il y a des lignes de code que nous avons dû écrire deux fois à des endroits différents. Par exemple, `titi.speed = 1`. Nous le faisons une fois dans le code de configuration du jeu, puis une autre fois dans la fonction reset(), qui est appelée lorsque Titi meurt et que le jeu redémarre. Il serait peut-être judicieux de n'utiliser la fonction reset() qu'au début du jeu également ! On n'aurait alors besoin du code qu'à un seul endroit.
Vous avez peut-être remarqué qu'il y a des portions de code que nous avons dû écrire plusieurs fois à des endroits différents. Par exemple, `titi.speed = 1`. Nous l'avons une fois dans le code de configuration du jeu, puis une autre fois dans la fonction reset(), qui est appelée lorsque Titi meurt et que le jeu redémarre. Il serait peut-être judicieux de n'utiliser la fonction reset() qu'au début du jeu également ! On n'aurait alors besoin du code qu'à un seul endroit.

Ajoutez un appel à la fonction `reset()` à la toute fin du fichier.
Maintenant, nous pouvons supprimer l'appel `titi.speed = 1` qui se produit dans le code de configuration du jeu.
Pouvez-vous trouver un moyen de spécifier la position initiale de tous les éléments dans une seule partie du code ?
Essayez de suivre la même logique pour ne spécifier les positions de départ des éléments qu'une seule fois dans votre code.

Indice : vous devriez pouvoir supprimer 3 valeurs de position. L'une d'entre elles ressemble à : `(75, 350)`.
Indice : vous devriez pouvoir supprimer 3 valeurs de position. L'une d'entre elles par exemple : `(75, 350)`.

Vérifiez que tout fonctionne toujours comme avant.

Une longueur d'avance pour Titi.
### Une longueur d'avance pour Titi.

Laissons au joueur un peu plus de temps pour s'envoler avant qu'il ne tombe de l'écran. Nous pouvons déplacer le point de départ à seulement 50 pixels du haut de l'écran. Trouvez cette ligne dans la fonction de réinitialisation :

`titi.center = (75, 350)`

Remplacez les 350 par quelque chose de beaucoup plus petit (50 par exemple) Essayez et trouvez une valeur qui vous semble juste.
Si vous avez bien rationnalisé votre code, vous remarquerez qu'il n'est nécessair de changer cette valeur qu'à un seul endroit du code, ce qui évite les erreurs éventuelles.
Si vous avez bien rationnalisé votre code, vous remarquerez qu'il n'est nécessaire de changer cette valeur qu'à un seul endroit du code, ce qui évite les erreurs éventuelles.

## Collisions
Dans PyGameZero, rien ne vous empêche de dessiner plusieurs sprites (images) les uns sur les autres. Donc, si nous voulons avoir un certain comportement lorsque les choses se heurtent, nous devons nous en occuper nous-mêmes. Ajoutez ce code à la fin de la fonction de mise à jour :
@@ -102,9 +108,9 @@ Maintenant, Titi devrait devenir un fantôme quand vous frappez le tuyau supéri
2. Titi peut toujours voler à travers le tuyau du bas !
3. Vous pouvez toujours voler, même en tant que fantôme.

Essayez de résoudre les problèmes 1 et 2 maintenant. Nous allons examiner le 3 ci-dessous.
Essayez de résoudre vous-même les problèmes 1 et 2. Nous allons examiner le 3 ci-dessous.

C'est peut-être le bon moment pour essayer de changer la taille de l'espace pour régler la difficulté du jeu. Vous pourriez par exemple le rendre très grand pendant les essais, afin de pouvoir vous concentrer sur les essais et non sur le vol !
Note : c'est peut-être le bon moment pour essayer de changer la taille de l'espace pour régler la difficulté du jeu. Vous pourriez par exemple le rendre très grand pendant les essais, afin de pouvoir vous concentrer sur les essais et non sur le vol !

Maintenant, nous aimerions empêcher Titi de continuer à voler lorsqu'il est un fantôme. Le code qui le fait voler a besoin d'un moyen de savoir s'il est toujours vivant. Nous pourrions utiliser la variable `titi.image`, car elle change quand il meurt. Mais il est préférable d'ajouter une nouvelle variable pour rendre notre code plus propre et moins susceptible de se casser si nous faisons des changements plus tard.



Загрузка…
Отмена
Сохранить