Dalam permainan pong biasa, bola harus melantun dari dayung dengan betul. Walau bagaimanapun, dalam keadaan tertentu, pemain mungkin menghadapi tingkah laku pelik di mana bola bergoyang di sepanjang tepi dayung, gagal melantun dengan sewajarnya.
Apabila bola berlanggar dengan dayung dalam cara tradisional, arahnya diterbalikkan seperti berikut:
if ball.colliderect(paddleLeft): move_x *=-1 if ball.colliderect(paddleRight): move_x *=-1
Namun, jika bola berlanggar dengan bahagian atas atau bawah dayung, bola mungkin menembusi sedikit ke dalam dayung. Dalam bingkai seterusnya, perlanggaran masih dikesan, menyebabkan perubahan arah lain. Ini mengakibatkan pergerakan zigzag di sepanjang tepi dayung.
Untuk menyelesaikan isu ini, terdapat dua pendekatan yang berdaya maju:
1. Tetapkan Arah Berdasarkan Sisi Dayung
Daripada menterbalikkan arah pada setiap perlanggaran, laraskan arah berdasarkan sisi dayung yang bola terkena:
if ball.colliderect(paddleLeft): move_x = abs(move_x) if ball.colliderect(paddleRight): move_x = -abs(move_x)
Pendekatan ini memastikan bola melantun di hadapan dayung seperti yang dijangkakan.
2. Laraskan Kedudukan Bola Selepas Perlanggaran
Sebagai alternatif, ubah suai kedudukan bola untuk meletakkannya dengan betul selepas perlanggaran:
if ball.colliderect(paddleLeft): move_x *= -1 ball.left = paddleLeft.right if ball.colliderect(paddleRight): move_x *= -1 ball.right = paddleRight.left
Dengan kaedah ini, bola diletakkan secara automatik di luar dayung tepi, menghalang tingkah laku zigzag.
Atas ialah kandungan terperinci Mengapa Bola Pong Saya Bergoyang Sepanjang Dayung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!