Rumah > Artikel > pembangunan bahagian belakang > Mengapa Bola Pong Saya Meluncur Sepanjang Dayung Daripada Melantun?
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)
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
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!