Browse Source

code Ok

chapitre-3-end
Lapin-Blanc 3 years ago
parent
commit
d53286e98c
2 changed files with 41 additions and 16 deletions
  1. +13
    -7
      README.md
  2. +28
    -9
      birdie.py

+ 13
- 7
README.md View File

@@ -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. 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 ```python
def reset(): def reset():
print("Retour au départ...") print("Retour au départ...")
titi.speed = 1 titi.speed = 1
titi.center = (75, 350) titi.center = (75, 350)
tube_superieur.center = (300, 0) 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 : > 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 ! ## 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 : 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. 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. 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. 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 ```python
titi.speed += gravity 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. 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 View File

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


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

def update(): def update():
titi.speed += gravite
titi.y += titi.speed titi.y += titi.speed
tube_superieur.x -= vitesse_defilement tube_superieur.x -= vitesse_defilement
tube_inferieur.x -= vitesse_defilement tube_inferieur.x -= vitesse_defilement
if tube_superieur.right < 0 : if tube_superieur.right < 0 :
tube_superieur.left = WIDTH tube_superieur.left = WIDTH
tube_inferieur.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(): def draw():
screen.blit('background', (0, 0)) screen.blit('background', (0, 0))
@@ -22,13 +41,13 @@ def draw():
tube_superieur.draw() tube_superieur.draw()
tube_inferieur.draw() tube_inferieur.draw()


titi = Actor('bird1', (75, 350))
titi.speed = 1
titi = Actor('bird1')
ecart = 140 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 vitesse_defilement = 1
gravite = 0.3


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


pgzrun.go() pgzrun.go()

Loading…
Cancel
Save