파이게임에서 마우스 방향으로 총알을 쏘는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-29 19:17:30
원래의
595명이 탐색했습니다.

How to shoot a bullet in the direction of the mouse in Pygame?

Pygame에서 마우스 방향으로 총알 쏘는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!