Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menghalang Pergerakan Terlalu Pantas Semasa Mengendalikan Input Papan Kekunci dalam Pygame?

Bagaimana untuk Menghalang Pergerakan Terlalu Pantas Semasa Mengendalikan Input Papan Kekunci dalam Pygame?

DDD
Lepaskan: 2024-12-18 01:13:10
asal
595 orang telah melayarinya

How to Prevent Excessively Fast Movement When Handling Keyboard Input in 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
Salin selepas log masuk

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
Salin selepas log masuk

Selain itu, semasa gelung permainan, anda akan mengurangkan pembilang:

if move_ticker > 0:
    move_ticker -= 1
Salin selepas log masuk

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan