PyGame에서 마우스 커서 방향으로 이미지를 회전하는 방법은 무엇입니까?
Oct 24, 2024 am 05:46 AMPyGame에서 마우스 커서 방향을 향하도록 이미지 회전
소개
게임 개발에서는 스프라이트나 플레이어가 마우스 커서 방향을 향하게 하려면 종종 필요합니다. 이 가이드는 PyGame을 사용하여 Python에서 마우스 위치를 가리키도록 이미지를 회전하는 포괄적인 솔루션을 제공합니다.
코드 분석
제공된 코드는 거의 정확하지만 플레이어와 마우스 커서 사이의 벡터 각도를 계산하지 않습니다.
해결 방법
1. 벡터 및 각도 계산:
- 마우스 위치 가져오기: mx, my = pygame.mouse.get_pos().
- 플레이어의 직사각형 계산: player_ect = Player_1.get_lect (topleft=(P_X,P_Y)).
- 플레이어에서 마우스로 벡터를 가져옵니다. dx = mx - player_ect.centerx 및 dy = player_ect.centery - my.
- 각도를 사용하는 각도 = math.degrees(math.atan2(-dy, dx)) - Correction_angle. -dy는 PyGame 좌표계의 y축 방향을 바꿉니다.
2. 보정 각도 적용:
- 플레이어의 방향에 따라 보정 각도(correction_angle)를 적용해야 합니다.
- 오른쪽을 향한 이미지의 경우 Correction_angle은 0입니다.
- 위를 향한 이미지의 경우 Correction_angle은 90입니다.
- 왼쪽을 향한 이미지의 경우 Correction_angle은 180입니다.
- 아래를 향한 이미지의 경우 Correction_angle은 270입니다.
3. 이미지 회전:
- pygame.transform.rotate(Player_1, angle)를 사용하여 계산된 각도만큼 플레이어 이미지를 회전합니다.
- rot_image_lect를 사용하여 회전된 이미지의 직사각형을 가져옵니다. = rot_image.get_lect(center=player_ect.center)를 사용하여 중심을 유지합니다.
업데이트 코드:
<code class="python">import math import pygame # Calculate the vector and angle mx, my = pygame.mouse.get_pos() player_rect = Player_1.get_rect(topleft=(P_X,P_Y)) dx = mx - player_rect.centerx dy = player_rect.centery - my angle = math.degrees(math.atan2(-dy, dx)) - correction_angle # Rotate the image rot_image = pygame.transform.rotate(Player_1, angle) rot_image_rect = rot_image.get_rect(center=player_rect.center)</code>
로그인 후 복사
이 업데이트 코드는 각도를 올바르게 계산합니다. 마우스 위치를 가리키도록 플레이어를 회전시킵니다.
위 내용은 PyGame에서 마우스 커서 방향으로 이미지를 회전하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

인기 기사
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7283
9


자바 튜토리얼
1622
14


Cakephp 튜토리얼
1342
46


라라벨 튜토리얼
1259
25


PHP 튜토리얼
1205
29



Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?
