Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah gelung permainan Pygame saya tidak cekap dan menyebabkan blitting yang salah?
Gelung permainan utama anda tidak betul, yang menyebabkan aplikasi Pygame anda tidak berfungsi. Berikut ialah pecahan isu:
Tertib Peletusan Tidak Betul:
Dalam kod anda, anda cuba melenyapkan latar belakang pada kedudukan objek dan kemudian gerakkan objek sebelum meletuskannya pada kedudukan baharunya. Ini tidak perlu. Latar belakang hendaklah dilukis sekali pada permulaan setiap bingkai dan objek hendaklah dipadamkan di atasnya tanpa memadamkan kedudukan sebelumnya.
Berikut ialah versi anda yang telah diperbetulkan gelung aplikasi utama:
while True: # Handle events for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # Update objects (based on input and frames) keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: screen.blit(background, objects[0].pos, objects[0].pos) objects[0].move_left() screen.blit(objects[0].image, objects[0].pos) # Blit object at new position if keys[pygame.K_RIGHT]: screen.blit(background, objects[0].pos, objects[0].pos) objects[0].move_right() screen.blit(objects[0].image, objects[0].pos) # Blit object at new position if keys[pygame.K_UP]: screen.blit(background, objects[0].pos, objects[0].pos) objects[0].move_up() screen.blit(objects[0].image, objects[0].pos) # Blit object at new position if keys[pygame.K_DOWN]: screen.blit(background, objects[0].pos, objects[0].pos) objects[0].move_down() screen.blit(objects[0].image, objects[0].pos) # Blit object at new position for num in range(num_objects - 1): objects[num + 1].rand_move() # Draw background screen.blit(background, (0, 0)) # Draw scene for o in objects: screen.blit(o.image, o.pos) # Update display pygame.display.update() pygame.time.delay(100)
Atas ialah kandungan terperinci Mengapakah gelung permainan Pygame saya tidak cekap dan menyebabkan blitting yang salah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!