Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengawal Input Papan Kekunci Pantas untuk Pergerakan Permainan Lancar dalam Pygame?
Cara Mengawal Input Papan Kekunci dalam Pygame
Apabila membangunkan permainan menggunakan Pygame, adalah penting untuk mengendalikan input papan kekunci dengan berkesan. Artikel ini meneroka isu pergerakan kapal yang terlalu pantas dalam permainan Pygame yang mudah disebabkan oleh penekanan kekunci yang berterusan dan menyediakan penyelesaian untuk menyekat pergerakan pada bingkai atau penekanan kekunci tertentu.
Pygame menawarkan dua kaedah utama untuk mendapatkan input papan kekunci: pygame .key.get_pressed() dan pengendalian acara. get_pressed() mengembalikan tatasusunan Boolean yang menunjukkan kekunci yang sedang ditekan ke bawah, tetapi ia tidak menyatakan apabila kekunci ditekan pada mulanya.
Dalam kod yang disediakan, kedudukan kapal dikemas kini berdasarkan nilai get_pressed() , menyebabkan pergerakan berterusan selagi kunci ditekan. Untuk menyekat ini, pengendalian acara boleh digunakan untuk bertindak balas hanya kepada acara akhbar utama (KEYDOWN):
events = pygame.event.get() for event in events: if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: location -= 1 elif event.key == pygame.K_RIGHT: location += 1
Walau bagaimanapun, untuk pergerakan berterusan dalam penekan kekunci, had mesti dikuatkuasakan:
move_ticker = 0 # Initialize a ticker for limiting movement keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: if move_ticker == 0: # Check if movement is allowed move_ticker = 10 # Set ticker to 10 frames location -= 1 if location == -1: location = 0 elif keys[pygame.K_RIGHT]: if move_ticker == 0: move_ticker = 10 location += 1 if location == 5: location = 4 # Update the ticker every frame if move_ticker > 0: move_ticker -= 1
Pelaksanaan ini mengemas kini lokasi kapal sekali setiap 10 bingkai, memastikan pergerakan yang lebih terkawal dan responsif.
Atas ialah kandungan terperinci Bagaimana untuk Mengawal Input Papan Kekunci Pantas untuk Pergerakan Permainan Lancar dalam Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!