Heim >Backend-Entwicklung >Python-Tutorial >Ping-Pong-Spiel in Pygame Python

Ping-Pong-Spiel in Pygame Python

Linda Hamilton
Linda HamiltonOriginal
2024-11-27 01:51:10627Durchsuche

Importieren

import pygame
import sys

Pygame ist das Modul, mit dem wir Spiele erstellen. Es stellte uns Tools für Grafik, Sound und mehr zur Verfügung.

sys ist ein Modul in Python, das uns bei der Interaktion mit dem Python-Interpreter hilft.

Initialisiert

pygame.init()

Initialisiert alle Pygame-Module und macht sie einsatzbereit.

Konstanten

#dimensions
WIDTH, HEIGHT=800,600
#frame rate
FPS=60
#the paddles at the side of ping pong
PADDLE_WIDTH, PADDLE_HEIGHT=15,90
#the balls radius
BALL_RADIUS=15
#the color of the ball and paddle
WHITE=(255, 255, 255)
  • BREITE und HÖHE: Abmessungen des Spielfensters. 800 Pixel sind für die Breite und 600 Pixel für die Höhe
  • FPS: Bilder pro Sekunde, die die Geschwindigkeit und Laufruhe des Spiels steuern.
  • PADDLE_WIDTH, PADDLE_HEIGHT: Abmessungen der Paddel.
  • BALL_RADIUS: Radius des Balls.
  • WEISS: Der RGB-Wert für Weiß, wird für Schläger, Ball und Text verwendet.

Machen Sie einen Bildschirm

screen=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Ping Pong")

Sie erhalten ein Fenster namens Ping Pong mit der zugewiesenen BREITE und HÖHE

Ping Pong game in Pygame python

Paddel- und Ball-Setup

left_paddle=pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

right_paddle=pygame.Rect(WIDTH - 50 - PADDLE_WIDTH, HEIGHT //2- PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

ball=pygame.Rect(WIDTH //2 - BALL_RADIUS, HEIGHT //2 - BALL_RADIUS, BALL_RADUIS *2, BALL_RADIUS *2)

Ping Pong game in Pygame python

In Pygame stellt die linke obere Ecke des Bildschirms (0,0) in Koordinaten dar.

  • pygame.Rect: Wird verwendet, um Rechtecke in Pygame zu erstellen (wird hier für die Paddel und den Ball verwendet).
pygame.Rect(x, y, width, height)
  • left_paddle: Nahe der linken Seite des Bildschirms positioniert, vertikal zentriert.
pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
  1. Zuerst positionieren wir das linke Paddle 50px nach rechts von der linken Seite.

  2. Dann machen wir HEIGHT//2 - PADDLE_HEIGHT //2, denn wenn Sie nur HEIGHT//2 gemacht haben, wird es so aussehen, wie es auf dem Bild ist. Es verschwindet auf dem Bildschirm. Um es zu zentrieren, machen wir - PADDLE_HEIGHT //2

Ping Pong game in Pygame python

Das haben wir für das rechte Paddel getan, um es zu zentrieren.

  • right_paddle: Nahe der rechten Seite des Bildschirms positioniert, vertikal zentriert.
right_paddle=pygame.Rect(WIDTH - 50 - PADDLE_WIDTH, HEIGHT //2- PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
  • Ball: Zunächst in der Mitte des Bildschirms positioniert.
ball=pygame.Rect(WIDTH //2 - BALL_RADIUS, HEIGHT //2 - BALL_RADIUS, BALL_RADUIS *2, BALL_RADIUS *2)

Damit der Ball ihn zentriert, haben wir den Radius subtrahiert.

Geschwindigkeit

ball_speed_x=7
ball_speed_y=7
paddle_speed=10

ball_speed_x und ball_speed_y steuern die horizontale und vertikale Geschwindigkeit des Balls.

paddle_speed: Steuert die Bewegungsgeschwindigkeit der Paddel.

Bewertungsvariablen

import pygame
import sys
  • left_score und right_score: Verfolgen Sie die Ergebnisse der Spieler.
  • Schriftart: Wird zum Rendern von Text auf dem Bildschirm für Partituren verwendet. Keine verwendet die Standardschriftart und 55 ist die Schriftgröße.

Funktion, um alles zu zeichnen

pygame.init()
  • fill((0, 0, 0)): Füllt den Bildschirm mit Schwarz (RGB: 0, 0, 0).
  • pygame.draw.rect: Zeichnet die rechteckigen Paddles.
  • pygame.draw.ellipse: Zeichnet den Ball als Kreis (begrenzt durch den rechteckigen Ball).

Zeichnen Sie die Mittellinie

#dimensions
WIDTH, HEIGHT=800,600
#frame rate
FPS=60
#the paddles at the side of ping pong
PADDLE_WIDTH, PADDLE_HEIGHT=15,90
#the balls radius
BALL_RADIUS=15
#the color of the ball and paddle
WHITE=(255, 255, 255)
  • Zeichnet eine vertikale Mittellinie, um das Spielfeld zu teilen.

Punkte ziehen

screen=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Ping Pong")

Rendert die Ergebnisse für beide Spieler und positioniert sie auf dem Bildschirm.

Aktualisieren Sie den Bildschirm

left_paddle=pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

right_paddle=pygame.Rect(WIDTH - 50 - PADDLE_WIDTH, HEIGHT //2- PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

ball=pygame.Rect(WIDTH //2 - BALL_RADIUS, HEIGHT //2 - BALL_RADIUS, BALL_RADUIS *2, BALL_RADIUS *2)

Aktualisiert die Anzeige mit den neuesten Änderungen.

pygame.Rect(x, y, width, height)

Lässt das Spiel auf unbestimmte Zeit laufen.

pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

Dadurch werden alle Ereignisse durchgegangen, die in Pygame passieren können. Wenn eines davon das Fenster schließt, beenden Sie Pygame und schließen Sie das Fenster.

Paddelsteuerung

right_paddle=pygame.Rect(WIDTH - 50 - PADDLE_WIDTH, HEIGHT //2- PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

Erkennt Tastendrücke:

  • W und S: Bewegen Sie das linke Paddel nach oben und unten.
    • pygame.K_w ist der w-Schlüssel
    • pygame.K_s ist der s-Schlüssel
  • AUF und AB: Bewegen Sie das rechte Paddel nach oben und unten.
    • pygame.K_UP ist die Aufwärtstaste
    • pygame.K_DOWN ist die Abwärtstaste
  • Beinhaltet Kontrollen, um zu verhindern, dass sich Paddel vom Bildschirm entfernen.
    • left_paddle.top > 0überprüft, ob die Koordinaten des oberen Randes des Paddels größer als 0 sind. Um zu überprüfen, ob der obere Rand des Bildschirms erreicht wird, wenn Sie auf W klicken.
    • left_paddle.bottom < HEIGHT prüft, ob die Koordinaten der Unterseite der Paddel größer als die Höhe des Bildschirms sind. Um zu überprüfen, ob es den unteren Bildschirmrand erreicht, wenn Sie auf K klicken.
    • right_paddle.top > 0überprüft, ob die Koordinaten des oberen Rands des Paddels größer als 0 sind. Um zu überprüfen, ob der obere Rand des Bildschirms erreicht wird, wenn Sie auf die Aufwärtstaste klicken.
    • right_paddle.bottom < HEIGHT prüft, ob die Koordinaten der Unterseite der Paddel größer als die Höhe des Bildschirms sind. Um zu überprüfen, ob es den unteren Bildschirmrand berührt, wenn Sie auf die Abwärtstaste klicken.

Ballbewegung

ball=pygame.Rect(WIDTH //2 - BALL_RADIUS, HEIGHT //2 - BALL_RADIUS, BALL_RADUIS *2, BALL_RADIUS *2)

Bewegt den Ball, indem seine Geschwindigkeit zu seiner aktuellen Position addiert wird

Ballkollision mit Ober- und Unterwänden

ball_speed_x=7
ball_speed_y=7
paddle_speed=10

Kehrt die vertikale Richtung des Balls um, wenn er oben oder unten auf dem Bildschirm auftrifft

Ballkollision mit Schlägern

import pygame
import sys

Kehrt die horizontale Richtung des Balls um, wenn er mit einem Paddel kollidiert.

Wertung

pygame.init()
  • Aktualisiert den Punktestand, wenn der Ball ins Aus geht.
  • Setzt den Ball in die Mitte zurück und kehrt seine Richtung um.

Timing

#dimensions
WIDTH, HEIGHT=800,600
#frame rate
FPS=60
#the paddles at the side of ping pong
PADDLE_WIDTH, PADDLE_HEIGHT=15,90
#the balls radius
BALL_RADIUS=15
#the color of the ball and paddle
WHITE=(255, 255, 255)

Begrenzt die Ausführung des Spiels auf maximal 60 Bilder pro Sekunde, um ein reibungsloses Gameplay zu gewährleisten.

Vollständiger Code

screen=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Ping Pong")

Ping Pong game in Pygame python

Das obige ist der detaillierte Inhalt vonPing-Pong-Spiel in Pygame Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn