Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Bola Pong Saya Bergoyang Daripada Melantun Dari Dayung?
Dalam permainan Pong klasik, pemain mengawal dayung untuk menepis bola ke depan dan belakang merentasi skrin. Walau bagaimanapun, sesetengah pengguna menghadapi masalah di mana bola kadangkala gagal melantun dari dayung, sebaliknya bergoyang dan menggelongsor di sepanjang permukaannya.
Punca:
Masalah ini timbul apabila bola berlanggar dengan bahagian atas atau tepi bawah dayung. Mengesan perlanggaran ini dan menterbalikkan arah bola adalah betul. Walau bagaimanapun, ada kalanya, bola menembusi dayung dengan begitu dalam sehingga ia kekal dalam kawasan perlanggaran semasa pergerakan seterusnya. Akibatnya, perlanggaran kedua dikesan, menterbalikkan arah bola sekali lagi, mewujudkan kesan zigzag di sepanjang bahagian hadapan dayung.
Penyelesaian:
Daripada mendarabkan kelajuan bola dengan -1, yang mengakibatkan keterbalikan arahnya, memberikan kelajuan positif apabila ia mengenai dayung kanan dan kelajuan negatif apabila ia terkena ke kiri dayung akan menghasilkan lantunan yang lebih konsisten.
if ball.colliderect(paddleLeft): move_x = abs(move_x) if ball.colliderect(paddleRight): move_x = -abs(move_x)
Sebagai alternatif, melaraskan kedudukan bola selepas perlanggaran boleh memastikan ia kekal dalam sempadan. Apabila dayung kanan dipukul, gerakkan tepi kanan bola ke kiri dayung, dan begitu juga sebaliknya untuk dayung kiri.
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 Bergoyang Daripada Melantun Dari Dayung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!