Menu
CoddyTech

Nombres entiers et décimaux

Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 9 sur 32.

Python a deux types de nombres. Un int est un nombre entier : 3, -40, 640. Un float comporte un point décimal : 0.5, 2.0, 107.25.

Un pixel par image, cela fait 60 pixels par seconde. Pour ralentir le mouvement, ajoute un float :

moon_x = moon_x + 0.5

Maintenant, moon_x prend les valeurs 100, 100.5, 101.0, 101.5. pygame dessine aux pixels entiers, donc la lune se déplace d’un pixel toutes les deux images : une lente dérive de 30 pixels par seconde.

Un int plus un float donne un float, et un float affiche toujours son point décimal, comme 101.0. int() transforme un float en int en supprimant ce qui se trouve après le point :

int(101.5)   # 101
challenge icon

Défi

Moyen

Fais dériver la lune lentement :

  1. Dans la partie consacrée aux changements, ajoute 0.5 à moon_x à chaque image.
  2. Affiche l’étiquette sous forme de nombre entier : f"Moon x: {int(moon_x)}".

Essayez vous-même

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Initialisez les éléments ici, avant la boucle du jeu.
moon_x = 100
moon_y = 200
font = pygame.font.Font(None, 36)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Modifiez les éléments ici, une fois par image.

    screen.fill((20, 24, 48))
    # Dessinez ici, après le remplissage de l’écran.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
    text = font.render(f"Moon x: {moon_x}", True, (230, 230, 240))
    screen.blit(text, (20, 20))

    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Python dans une fenêtre de jeu

Entraînez-vous par vous-même : Playground Pygame