Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menghalang Pergerakan Terlalu Pantas Semasa Mengendalikan Input Papan Kekunci dalam Pygame?
Input Papan Kekunci dalam Pygame: Mengendalikan Peristiwa Ketukan Kekunci
Dalam membangunkan permainan mudah menggunakan pygame 1.9.2, anda mungkin menghadapi isu di mana a kapal dikawal oleh kekunci anak panah bergerak terlalu pantas. Masalah ini berpunca daripada mendaftarkan penekanan kekunci secara berterusan semasa kekunci ditekan.
Untuk mengatasinya, bukannya bergantung pada pygame.key.get_pressed(), yang mendapatkan semula kekunci yang ditekan pada masa ini, pertimbangkan untuk mengendalikan peristiwa ketukan kekunci. Acara KEYDOWN menangkap kekunci yang ditekan dalam bingkai semasa, memastikan pergerakan hanya berlaku sekali setiap ketukan kekunci.
events = pygame.event.get() for event in events: if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: location -= 1 if event.key == pygame.K_RIGHT: location += 1
Walau bagaimanapun, jika pergerakan berterusan dikehendaki, anda boleh melaksanakan pengehadan untuk menyekat kekerapan pergerakan. Satu pendekatan ialah menetapkan kadar bingkai maksimum atau menggunakan pembilang untuk mengehadkan pergerakan setiap beberapa kutu.
move_ticker = 0 keys = pygame.key.get_pressed() if keys[K_LEFT]: if move_ticker == 0: move_ticker = 10 location -= 1 if location == -1: location = 0 if keys[K_RIGHT]: if move_ticker == 0: move_ticker = 10 location += 1 if location == 5: location = 4
Selain itu, semasa gelung permainan, anda akan mengurangkan pembilang:
if move_ticker > 0: move_ticker -= 1
Ini memastikan pergerakan berlaku hanya setiap 10 bingkai.
Atas ialah kandungan terperinci Bagaimana untuk Menghalang Pergerakan Terlalu Pantas Semasa Mengendalikan Input Papan Kekunci dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!