Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Bola Pong Saya Meluncur Sepanjang Dayung Daripada Melantun?

Mengapa Bola Pong Saya Meluncur Sepanjang Dayung Daripada Melantun?

Barbara Streisand
Lepaskan: 2024-11-14 15:17:02
asal
255 orang telah melayarinya

Why Does My Pong Ball Slide Along the Paddle Instead of Bouncing?

Bola Enggan Melantun Dayung dalam Permainan Pong

Dalam keadaan tertentu, pemain mungkin menghadapi anomali dalam permainan pong mereka: bola secara tidak dapat dijelaskan meluncur di sepanjang dayung dan bukannya melantun darinya. Tingkah laku menyimpang ini berpunca daripada kecacatan halus dalam mekanisme pengesanan perlanggaran.

Kecacatan Pengesanan Perlanggaran

Apabila bola berlanggar dengan segi empat tepat dayung, arahnya diubah. Namun, kadangkala perlanggaran berlaku bukan di bahagian hadapan dayung tetapi di bahagian atas atau bawahnya. Semasa perlanggaran dikesan dan trajektori bola diterbalikkan dengan sewajarnya, bola telah menembusi jauh ke dalam dayung.

Dalam bingkai seterusnya, bola tidak boleh keluar dari kawasan perlanggaran. Akibatnya, perlanggaran kedua dikesan, menterbalikkan arah bola sekali lagi. Corak ini berulang sehingga bola akhirnya "jatuh" dari tepi bawah dayung.

Menyelesaikan Isu

Untuk membetulkan masalah ini, beberapa penyelesaian wujud. Satu pendekatan melibatkan pelarasan arah bola. Daripada hanya membalikkannya, kita boleh menetapkan arah ke kiri (atau kanan) apabila berlanggar dengan dayung kiri (atau kanan), masing-masing:

if ball.colliderect(paddleLeft):
    move_x = abs(move_x)
if ball.colliderect(paddleRight):
    move_x = -abs(move_x) 
Salin selepas log masuk

Sebagai alternatif, kita boleh melaraskan kedudukan bola dengan tepat . Apabila berlanggar dengan dayung kiri (atau kanan), kami memastikan bahawa tepi kiri (atau kanan) bola terletak di sebelah kanan (atau kiri) sempadan dayung yang sepadan:

if ball.colliderect(paddleLeft):
    move_x *= -1
    ball.left = paddleLeft.right
if ball.colliderect(paddleRight):
    move_x *= -1
    ball.right = paddleRight.left
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Bola Pong Saya Meluncur Sepanjang Dayung Daripada Melantun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan