Pygame에서는 마우스 방향으로 발사되는 총알을 생성할 수 있습니다. 이렇게 하려면 총알을 나타내는 클래스를 만들고 마우스 위치에 따라 총알의 초기 위치와 방향을 설정해야 합니다.
총알에 대한 클래스
먼저 글머리 기호에 대한 클래스를 만듭니다. 이 클래스에는 총알의 위치, 크기 및 표면에 대한 속성이 포함되어야 합니다. 표면은 화면에 렌더링되는 것입니다.
<code class="python">import pygame class Bullet: def __init__(self, x, y): self.x = x self.y = y self.height = 7 self.width = 2 self.bullet = pygame.Surface((self.width, self.height)) self.bullet.fill((255, 255, 255))</code>
게임 클래스 함수
다음으로 게임에 대한 클래스를 만듭니다. 이 클래스에는 총알을 발사하고 생성하는 함수가 포함됩니다.
<code class="python">class Game: def __init__(self): self.bullets = [] def shoot_bullet(self): mouse_x, mouse_y = pygame.mouse.get_pos() # Get the mouse position for bullet in self.bullets: rise = mouse_y - bullet.y # Calculate the difference between mouse and bullet y position run = mouse_x - bullet.x # Calculate the difference between mouse and bullet x position angle = math.atan2(rise, run) # Calculate the angle between mouse and bullet bullet.x += math.cos(angle) * 10 # Update bullet x position bullet.y += math.sin(angle) * 10 # Update bullet y position # Rotate and draw the bullet rotated_bullet = pygame.transform.rotate(bullet.bullet, -math.degrees(angle)) screen.blit(rotated_bullet, (bullet.x, bullet.y)) def generate_bullet(self): mouse_buttons = pygame.mouse.get_pressed() # Check if mouse is clicked if mouse_buttons[0]: # If left mouse button is clicked self.bullets.append(Bullet(player.x, player.y)) # Create a new bullet</code>
총알 클래스 사용
메인 게임 루프에서 Game 클래스의 인스턴스를 만들고 Shoot_bullet 및 generate_bullet 함수를 호출하십시오.
<code class="python">game = Game() while running: # Event handling # Update game.shoot_bullet() game.generate_bullet() # Draw screen.fill((0, 0, 0)) for bullet in game.bullets: screen.blit(bullet.bullet, (bullet.x, bullet.y)) pygame.display.update()</code>
이 코드는 마우스 방향으로 발사되는 총알을 생성합니다. 총알은 화면 밖으로 나갈 때까지 움직입니다.
위 내용은 파이게임에서 마우스 방향으로 총알을 쏘는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!