파이게임 응용 프로그램 루프가 제대로 작동하지 않는 이유는 무엇입니까?
제공된 코드를 조사한 결과 루프 배열이 주요 문제인 것으로 보입니다. . 기본 애플리케이션에서는 업데이트된 위치의 특정 엔터티만 다시 그리면서 화면의 일부를 지우고 각 엔터티에 대해 다시 그리려고 합니다. 이 접근 방식은 필요하지 않으며 시각적 불일치로 이어질 수 있습니다.
일반적으로 가장 좋은 방법은 다음과 같습니다.
이 수정된 코드 조각에서는 위에서 언급한 대로 루프를 재정렬했습니다.
while 1: # handle events for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # update objects (depends on input events and frames) keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: objects[0].move_left() if keys[pygame.K_RIGHT]: objects[0].move_right() if keys[pygame.K_UP]: objects[0].move_up() if keys[pygame.K_DOWN]: objects[0].move_down() 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 dispaly pygame.display.update() pygame.time.delay(100)
이제 이 루프는 화면을 효과적으로 지우고 모든 항목을 그린 다음 업데이트합니다. 각 프레임을 표시합니다.
자세한 내용은 이 최소 예를 참조하세요. 설명:
[예제 링크]
위 내용은 내 Pygame 응용 프로그램 루프가 올바르게 업데이트되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!