目次
ポン ゲームでボールがパドルから跳ね返らない
ホームページ バックエンド開発 Python チュートリアル ポンボールがパドルで跳ね返らずにぐらつくのはなぜですか?

ポンボールがパドルで跳ね返らずにぐらつくのはなぜですか?

Nov 09, 2024 am 03:42 AM

Why Does My Pong Ball Wobble Instead of Bouncing Off the Paddle?

ポン ゲームでボールがパドルから跳ね返らない

古典的なポン ゲームでは、プレイヤーはパドルを制御してボールを画面上で前後にそらします。ただし、一部のユーザーは、ボールがパドルから跳ね返らず、その表面に沿ってぐらついたり滑ったりする問題に遭遇しました。

原因:

この問題が発生します。ボールがパドルの上端または下端に衝突したとき。この衝突を検出してボールの方向を反転するのは正しいことです。ただし、場合によっては、ボールがパドルに深く入り込みすぎて、次の動作中にボールが衝突エリア内に留まってしまうことがあります。その結果、2 回目の衝突が検出され、ボールの方向が再び逆転し、パドルの前面に沿ってジグザグ効果が生じます。

解決策:

  1. リバース速度を乗算する代わりの方向:

ボールの速度に -1 を乗算して方向を逆転させる代わりに、ボールが右のパドルに当たったときに正の速度を割り当て、右のパドルに当たったときに負の速度を割り当てます。左のパドルに当たると、より安定したバウンスが得られます。

if ball.colliderect(paddleLeft):
    move_x = abs(move_x)
if ball.colliderect(paddleRight):
    move_x = -abs(move_x)
ログイン後にコピー
  1. ボールの位置を調整します:

または、ボールの位置を調整した後にボールの位置を調整します。衝突しても境界内に留まることが保証されます。右パドルがヒットすると、ボールの右端がパドルの左側に移動し、左パドルの場合はその逆になります。

if ball.colliderect(paddleLeft):
    move_x *= -1
    ball.left = paddleLeft.right
if ball.colliderect(paddleRight):
    move_x *= -1
    ball.right = paddleRight.left
ログイン後にコピー

以上がポンボールがパドルで跳ね返らずにぐらつくのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLを解析するために美しいスープを使用するにはどうすればよいですか? HTMLを解析するために美しいスープを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:54 PM

HTMLを解析するために美しいスープを使用するにはどうすればよいですか?

Pythonでの画像フィルタリング Pythonでの画像フィルタリング Mar 03, 2025 am 09:44 AM

Pythonでの画像フィルタリング

Pythonを使用してテキストファイルのZIPF配布を見つける方法 Pythonを使用してテキストファイルのZIPF配布を見つける方法 Mar 05, 2025 am 09:58 AM

Pythonを使用してテキストファイルのZIPF配布を見つける方法

Pythonを使用してPDFドキュメントの操作方法 Pythonを使用してPDFドキュメントの操作方法 Mar 02, 2025 am 09:54 AM

Pythonを使用してPDFドキュメントの操作方法

DjangoアプリケーションでRedisを使用してキャッシュする方法 DjangoアプリケーションでRedisを使用してキャッシュする方法 Mar 02, 2025 am 10:10 AM

DjangoアプリケーションでRedisを使用してキャッシュする方法

TensorflowまたはPytorchで深い学習を実行する方法は? TensorflowまたはPytorchで深い学習を実行する方法は? Mar 10, 2025 pm 06:52 PM

TensorflowまたはPytorchで深い学習を実行する方法は?

Pythonオブジェクトのシリアル化と脱介入:パート1 Pythonオブジェクトのシリアル化と脱介入:パート1 Mar 08, 2025 am 09:39 AM

Pythonオブジェクトのシリアル化と脱介入:パート1

Pythonで独自のデータ構造を実装する方法 Pythonで独自のデータ構造を実装する方法 Mar 03, 2025 am 09:28 AM

Pythonで独自のデータ構造を実装する方法

See all articles