"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Semaine de construction de jeux interactifs

Semaine de construction de jeux interactifs

Publié le 2024-11-07
Parcourir:480

Week Building Interactive Games

Semaine 2 : Créer des jeux interactifs


Classe 3 : Physique du jeu et mouvement

3.1 Comprendre la physique du jeu

La physique des jeux consiste à simuler la physique du monde réel pour rendre les jeux plus réalistes et plus attrayants. Les principes physiques de base tels que la vitesse, l'accélération et la gravité peuvent rendre les mouvements et les interactions dans un jeu naturels.

3.1.1 Vitesse et accélération
  • La vitesse est le taux de changement de position d'un objet.
  • L'accélération est le taux de changement de vitesse.

Exemple : mouvement de base avec vitesse

import pygame

# Initialize Pygame
pygame.init()

# Screen setup
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Basic Movement with Velocity")

# Colors
white = (255, 255, 255)
black = (0, 0, 0)

# Player setup
player = pygame.Rect(375, 275, 50, 50)
velocity = pygame.Vector2(0, 0)

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

    # Keyboard input for movement
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        velocity.x = -5
    elif keys[pygame.K_RIGHT]:
        velocity.x = 5
    else:
        velocity.x = 0

    if keys[pygame.K_UP]:
        velocity.y = -5
    elif keys[pygame.K_DOWN]:
        velocity.y = 5
    else:
        velocity.y = 0

    # Update player position
    player.move_ip(velocity)

    # Clear screen
    screen.fill(white)

    # Draw player
    pygame.draw.rect(screen, black, player)

    # Update display
    pygame.display.flip()

pygame.quit()
3.1.2 Simulation gravitationnelle

La gravité ajoute du réalisme aux jeux en tirant les objets vers le bas, simulant ainsi l'effet de la gravité sur Terre.

Exemple : Ajouter de la gravité à un objet qui tombe

import pygame

# Initialize Pygame
pygame.init()

# Screen setup
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Gravity Simulation")

# Colors
white = (255, 255, 255)
black = (0, 0, 0)

# Object setup
object = pygame.Rect(375, 50, 50, 50)
gravity = 0.5
velocity_y = 0

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

    # Apply gravity
    velocity_y  = gravity
    object.y  = velocity_y

    # Reset object position if it falls off-screen
    if object.y > 600:
        object.y = 50
        velocity_y = 0

    # Clear screen
    screen.fill(white)

    # Draw object
    pygame.draw.rect(screen, black, object)

    # Update display
    pygame.display.flip()

pygame.quit()

3.2 Objets rebondissants et réfléchissants

Pour créer des jeux dynamiques, il est souvent nécessaire de simuler des objets rebondissants, comme une balle qui rebondit sur les murs.

Exemple : Simulation de balle rebondissante

import pygame

# Initialize Pygame
pygame.init()

# Screen setup
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Bouncing Ball")

# Colors
white = (255, 255, 255)
black = (0, 0, 0)

# Ball setup
ball = pygame.Rect(375, 275, 50, 50)
velocity = pygame.Vector2(4, 4)

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

    # Move ball
    ball.move_ip(velocity)

    # Bounce off walls
    if ball.left = 800:
        velocity.x = -velocity.x
    if ball.top = 600:
        velocity.y = -velocity.y

    # Clear screen
    screen.fill(white)

    # Draw ball
    pygame.draw.ellipse(screen, black, ball)

    # Update display
    pygame.display.flip()

pygame.quit()

Mini-projet 3.3 : Jeu de balle rebondissante

Objectif : Créer un jeu dans lequel une balle rebondit sur l'écran, changeant de direction lorsqu'elle touche les murs.

3.3.1 Exemple de code

import pygame

# Initialize Pygame
pygame.init()

# Screen setup
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Bouncing Ball Game")

# Colors
white = (255, 255, 255)
black = (0, 0, 0)

# Ball setup
ball = pygame.Rect(375, 275, 50, 50)
velocity = pygame.Vector2(3, 3)

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

    # Move ball
    ball.move_ip(velocity)

    # Bounce off walls
    if ball.left = 800:
        velocity.x = -velocity.x
    if ball.top = 600:
        velocity.y = -velocity.y

    # Clear screen
    screen.fill(white)

    # Draw ball
    pygame.draw.ellipse(screen, black, ball)

    # Update display
    pygame.display.flip()

pygame.quit()

3.4 Exercices

  1. Ajouter des obstacles :
    • Introduisez des obstacles fixes sur lesquels le ballon peut rebondir.
  2. Changer la couleur de la balle :
    • Faites changer de couleur la balle à chaque fois qu'elle rebondit sur un mur.

Classe 4 : Travailler avec les sons et la musique

4.1 Ajout d'effets sonores et de musique

Les effets sonores et la musique sont essentiels pour créer une expérience de jeu immersive. Pygame vous permet d'ajouter facilement du son à vos jeux.

4.1.1 Chargement et lecture de sons
  • Pour utiliser le son dans Pygame, vous devez d'abord charger le fichier son, puis le lire.

Exemple : Ajout d'un effet sonore

import pygame

# Initialize Pygame and Mixer
pygame.init()
pygame.mixer.init()

# Load sound effect
bounce_sound = pygame.mixer.Sound("bounce.wav")

# Screen setup
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Sound Effects")

# Colors
white = (255, 255, 255)
black = (0, 0, 0)

# Ball setup
ball = pygame.Rect(375, 275, 50, 50)
velocity = pygame.Vector2(3, 3)

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

    # Move ball
    ball.move_ip(velocity)

    # Bounce off walls and play sound
    if ball.left = 800:
        velocity.x = -velocity.x
        bounce_sound.play()  # Play sound on bounce
    if ball.top = 600:
        velocity.y = -velocity.y
        bounce_sound.play()

    # Clear screen
    screen.fill(white)

    # Draw ball
    pygame.draw.ellipse(screen, black, ball)

    # Update display
    pygame.display.flip()

pygame.quit()
4.1.2 Musique de fond
  • Vous pouvez également ajouter une musique de fond qui joue en continu pendant le jeu.

Exemple : Ajout de musique de fond

import pygame

# Initialize Pygame and Mixer
pygame.init()
pygame.mixer.init()

# Load and play background music
pygame.mixer.music.load("background_music.mp3")
pygame.mixer.music.play(-1)  # Loop indefinitely

# Screen setup
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Background Music")

# Colors
white = (255, 255, 255)
black = (0, 0, 0)

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

    # Clear screen
    screen.fill(white)

    # Update display
    pygame.display.flip()

pygame.quit()

4.2 Déclenchement de sons en fonction d'événements

Des effets sonores peuvent être déclenchés en fonction d'événements de jeu spécifiques, tels que des collisions ou des actions de joueurs.

Exemple : Jeu de mémoire sonore

python
import pygame
import random

# Initialize Pygame and Mixer
pygame.init()
pygame.mixer.init()

# Load sounds
sounds = [pygame.mixer.Sound(f"sound{i}.wav") for i in range(4)]

# Screen setup
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Sound Memory Game")

# Colors
white = (255, 255, 255)
black = (0, 0, 0)

# Generate random sequence of sounds
sequence = [random.choice(sounds) for _ in range(5)]
current_step = 0

# Main game loop
running = True
while running:

Déclaration de sortie Cet article est reproduit sur : https://dev.to/igbojionu/week-2-building-interactive-games-41ok?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3