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

Ping-Pong-Spiel in Pygame Python

Linda Hamilton
Freigeben: 2024-11-27 01:51:10
Original
626 Leute haben es durchsucht

Importieren

import pygame
import sys
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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")
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren
Nach dem Login kopieren
  • left_paddle: Nahe der linken Seite des Bildschirms positioniert, vertikal zentriert.
pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
Nach dem Login kopieren
Nach dem Login kopieren
  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)
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren

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

Geschwindigkeit

ball_speed_x=7
ball_speed_y=7
paddle_speed=10
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • Zeichnet eine vertikale Mittellinie, um das Spielfeld zu teilen.

Punkte ziehen

screen=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Ping Pong")
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren
Nach dem Login kopieren

Aktualisiert die Anzeige mit den neuesten Änderungen.

pygame.Rect(x, y, width, height)
Nach dem Login kopieren
Nach dem Login kopieren

Lässt das Spiel auf unbestimmte Zeit laufen.

pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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

Ballkollision mit Schlägern

import pygame
import sys
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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

Wertung

pygame.init()
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
  • 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)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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")
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage