Sauter
Fait partie de la section Règles du jeu du Journey Pygame de Coddy. Leçon 24 sur 29.
Un saut est une vitesse vers le haut que la gravité annule. Donne une vitesse verticale au coureur, vy. À chaque image, la gravité lui ajoute 1 et le coureur se déplace de cette valeur :
def update(self):
self.vy += GRAVITY
self.rect.y += self.vy
if self.rect.bottom >= GROUND_Y:
self.rect.bottom = GROUND_Y
self.vy = 0y augmente vers le bas, donc un saut définit vy = -16 : le coureur monte de 15 pixels, puis de 14, puis de 13, ralentit jusqu'à s'arrêter à environ 120 pixels de hauteur et retombe de plus en plus vite. Lorsqu'il atteint la ligne du sol, il est replacé dessus et s'arrête.
Ne saute que depuis le sol. Sans cette vérification, chaque pression en l'air déclencherait un nouveau saut et le coureur pourrait monter indéfiniment :
def jump(self):
if self.rect.bottom == GROUND_Y:
self.vy = -16La section 5 s'appuie sur cela en ajoutant des plateformes sur lesquelles atterrir.
Défi
Moyen- Ajoute
GRAVITY = 1etself.vy = 0au coureur. - Écris
update()comme indiqué et appellerunner.update()à chaque image, avant le dessin. - Écris
jump():vy = -16, uniquement lorsque le coureur est au sol. - La barre d’espace ou la flèche vers le haut appelle
runner.jump().
Essayez vous-même
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 320))
pygame.display.set_caption("Sky Runner")
clock = pygame.time.Clock()
SKY = (140, 200, 240)
GROUND = (90, 160, 80)
GROUND_Y = 260
class Runner(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("assets/images/player.png").convert_alpha()
self.rect = self.image.get_rect(midbottom=(100, GROUND_Y))
runner = Runner()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill(SKY)
pygame.draw.rect(screen, GROUND, (0, GROUND_Y, 640, 60))
screen.blit(runner.image, runner.rect)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Règles du jeu
Entraînez-vous par vous-même : Playground Pygame