PyGame에서 공이 벽 안으로 들어가는 것을 어떻게 방지합니까? 하나에 맞나요?
중첩 루프:
이 문제는 여러 중첩 루프를 사용할 때 발생합니다. 애플리케이션 루프 내에서 움직임을 처리하는 것이 더 효율적입니다.
<code class="python">while run: # Handle movement continuously box.y -= box.vel_y box.x += box.vel_x</code>
경계 정의:
pygame.Rect 객체를 사용하여 공 움직임을 위한 직사각형 영역을 정의합니다.
<code class="python">bounds = window.get_rect() # full screen bounds = pygame.Rect(450, 200, 300, 200) # rectangular region</code>
경계 충돌 처리:
공이 경계와 교차할 때 공 방향 업데이트:
<code class="python">if box.x - box.radius < bounds.left or box.x + box.radius > bounds.right: box.vel_x *= -1 if box.y - box.radius < bounds.top or box.y + box.radius > bounds.bottom: box.vel_y *= -1</code>
<code class="python">box = Circle(600,300,10) run = True start = False clock = pygame.time.Clock() while run: clock.tick(120) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False keys = pygame.key.get_pressed() if keys[pygame.K_SPACE]: start = True bounds = pygame.Rect(450, 200, 300, 200) if start: box.y -= box.vel_y box.x += box.vel_x if box.x - box.radius < bounds.left or box.x + box.radius > bounds.right: box.vel_x *= -1 if box.y - box.radius < bounds.top or box.y + box.radius > bounds.bottom: box.vel_y *= -1 window.fill((0,0,0)) pygame.draw.rect(window, (255, 0, 0), bounds, 1) pygame.draw.circle(window, (44,176,55), (box.x, box.y), box.radius) pygame.display.update()</code>
위 내용은 PyGame에서 공이 경계를 넘는 것을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!