Pygame Python のピンポン ゲーム

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-27 01:51:10628ブラウズ

インポート中

import pygame
import sys

Pygame は、ゲームの作成に使用しているモジュールです。これにより、グラフィックス、サウンドなどのツールが提供されました。

sys は、Python インタープリターとの対話に役立つ Python のモジュールです。

初期化します

pygame.init()

すべての Pygame モジュールを初期化し、使用できるようにします。

定数

#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)
  • 幅と高さ: ゲーム ウィンドウの寸法。幅は 800px、高さは 600px です
  • FPS: 1 秒あたりのフレーム数。ゲームの速度と滑らかさを制御します。
  • PADDLE_WIDTH、PADDLE_HEIGHT: パドルの寸法。
  • BALL_RADIUS: ボールの半径。
  • WHITE: 白の RGB 値は、パドル、ボール、テキストに使用されます。

画面を作る

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

WIDTH と HEIGHT が割り当てられた Ping Pong

という名前のウィンドウが作成されます。

Ping Pong game in Pygame python

パドルとボールのセットアップ

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

Pygame では、画面の左上隅は座標で (0,0) を表します。

  • pygame.Rect: pygame で長方形を作成するために使用されます (ここではパドルとボールに使用されます)。
pygame.Rect(x, y, width, height)
  • left_paddle: 画面の左側近く、垂直方向の中央に配置されます。
pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
  1. まず、左側のパドルを左側から 50 ピクセル右に向かって配置します。

  2. 次に、HEIGHT//2 - PADDLE_HEIGHT //2 を実行します。なぜなら、HEIGHT//2 を実行しただけだと、画像のように見えるからです。画面の下に落ちていきます。それを中央に配置するには、次のようにします - PADDLE_HEIGHT //2

Ping Pong game in Pygame python

これは、右側のパドルを中央に配置するために行ったことです。

  • right_paddle: 画面の右側近く、垂直方向の中央に配置されます。
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)

ボールを中心に置くために、半径を減算しました。

スピード

ball_speed_x=7
ball_speed_y=7
paddle_speed=10

ball_speed_x と ball_speed_y は、ボールの水平速度と垂直速度を制御します。

paddle_speed: パドルの移動速度を制御します。

スコア変数

import pygame
import sys
  • left_score と right_score: プレーヤーのスコアを追跡します。
  • フォント: スコアの画面上にテキストをレンダリングするために使用されます。どれもデフォルトのフォントを使用しており、フォント サイズは 55 です。

全てを描画する機能

pygame.init()
  • fill((0, 0, 0)): 画面を黒で塗りつぶします(RGB: 0, 0, 0)。
  • pygame.draw.rect: 長方形のパドルを描画します。
  • pygame.draw.ellipse: ボールを円として描画します (長方形のボールで囲まれた)。

中心線を引く

#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)
  • 垂直の中心線を引いて競技場を分割します。

ドロースコア

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

両方のプレーヤーのスコアをレンダリングし、画面上に配置します。

画面を更新する

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)

最新の変更内容で表示を更新します。

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

ゲームを無期限に実行し続けます。

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

これにより、pygame で発生する可能性のあるすべてのイベントが調べられ、そのうちの 1 つがウィンドウを閉じている場合は、pygame を終了してウィンドウを閉じます。

パドルコントロール

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

キーの押下を検出します:

  • W および S: 左側のパドルを上下に動かします。
    • pygame.K_ww キー
    • です
    • pygame.K_ss キー
  • UP および DOWN: 右側のパドルを上下に動かします。
    • pygame.K_UP は上キーです
    • pygame.K_DOWN は下キーです
  • パドルが画面外に移動するのを防ぐためのチェックが含まれています。
    • left_paddle.top > 0パドルの上部の座標が 0 より大きいかどうかを確認します。W をクリックしたときに画面の上部に当たるかどうかを確認します。
    • left_paddle.bottom < HEIGHT パドルの底部の座標が画面の高さより大きいかどうかを確認します。 K をクリックしたときに画面の下部に当たるかどうかを確認します。
    • right_paddle.top > 0パドルの上部の座標が 0 より大きいかどうかを確認します。上キーをクリックしたときに画面の上部に当たっているかどうかを確認します。
    • right_paddle.bottom < HEIGHT パドルの底部の座標が画面の高さより大きいかどうかを確認します。下キーをクリックしたときに画面の下部に当たるかどうかを確認します。

ボールの動き

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

現在の位置に速度を加えてボールを移動します

ボールが上下の壁に衝突

ball_speed_x=7
ball_speed_y=7
paddle_speed=10

ボールが画面の上または下に当たった場合、ボールの垂直方向を反転します

パドルとボールの衝突

import pygame
import sys

ボールがパドルに衝突すると、ボールの水平方向が反転します。

採点

pygame.init()
  • ボールが範囲外に出た場合、スコアを更新します。
  • ボールを中心にリセットし、方向を反転します。

タイミング

#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)

ゲームの実行を 1 秒あたり最大 60 フレームに制限し、スムーズなゲームプレイを保証します。

完全なコード

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

Ping Pong game in Pygame python

以上がPygame Python のピンポン ゲームの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。