Bladeren bron

code Ok

chap-3-end
Lapin-Blanc 3 jaren geleden
bovenliggende
commit
d53286e98c
2 gewijzigde bestanden met toevoegingen van 41 en 16 verwijderingen
  1. +13
    -7
      README.md
  2. +28
    -9
      birdie.py

+ 13
- 7
README.md Bestand weergeven

@@ -5,15 +5,17 @@
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 :

```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,17 +51,19 @@ 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
```
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.



+ 28
- 9
birdie.py Bestand weergeven

@@ -4,17 +4,36 @@ TITLE = "Paf l'oiseau"
WIDTH = 400
HEIGHT = 708

def on_mouse_down():
print('Clic souris !')
titi.y -= 50

def update():
titi.speed += gravite
titi.y += titi.speed
tube_superieur.x -= vitesse_defilement
tube_inferieur.x -= vitesse_defilement
if tube_superieur.right < 0 :
tube_superieur.left = WIDTH
tube_inferieur.left = WIDTH
if titi.y > HEIGHT or titi.y < 0:
reset()
if titi.colliderect(tube_superieur) or titi.colliderect(tube_inferieur):
heurte_tube()

def on_mouse_down():
if titi.vivant:
titi.speed = -6.5

def reset():
print("Retour au départ...")
titi.speed = 1
titi.center = (75, 350)
titi.image = "bird1"
titi.vivant = True
tube_superieur.center = (300, 0)
tube_inferieur.center = (300, tube_superieur.height + ecart)

def heurte_tube():
print("Paf l'oiseau")
titi.image=('birddead')
titi.vivant = False

def draw():
screen.blit('background', (0, 0))
@@ -22,13 +41,13 @@ def draw():
tube_superieur.draw()
tube_inferieur.draw()

titi = Actor('bird1', (75, 350))
titi.speed = 1
titi = Actor('bird1')
ecart = 140
tube_superieur = Actor('top', (300, 0))
tube_inferieur = Actor('bottom', (300, tube_superieur.height + ecart))
tube_superieur = Actor('top')
tube_inferieur = Actor('bottom')
vitesse_defilement = 1
gravite = 0.3

# print(tube_superieur.width, tube_superieur.height)
reset()

pgzrun.go()

Laden…
Annuleren
Opslaan