
Memutar Imej untuk Menghadap Arah Kursor Tetikus dalam PyGame
Pengenalan
Dalam pembangunan permainan, ia selalunya diperlukan untuk membuat sprite atau pemain menghadap ke arah kursor tetikus. Panduan ini akan menyediakan penyelesaian yang komprehensif untuk memutar imej untuk menghala ke arah kedudukan tetikus dalam Python menggunakan PyGame.
Analisis Kod
Kod yang disediakan hampir betul, tetapi ia tidak mengira sudut vektor antara pemain dan kursor tetikus.
Penyelesaian
1. Kira Vektor dan Sudut:
- Dapatkan kedudukan tetikus: mx, my = pygame.mouse.get_pos().
- Kira segi empat tepat pemain: player_rect = Player_1.get_rect (kiri atas=(P_X,P_Y)).
- Dapatkan vektor daripada pemain ke tetikus: dx = mx - player_rect.centerx dan dy = player_rect.centery - my.
- Hitung sudut menggunakan sudut = math.degrees(math.atan2(-dy, dx)) - correction_angle. -dy membalikkan arah paksi-y untuk sistem koordinat PyGame.
2. Gunakan Sudut Pembetulan:
- Berdasarkan orientasi pemain, anda perlu menggunakan sudut pembetulan (sudut_pembetulan).
- Untuk imej yang menghadap ke kanan, sudut_pembetulan ialah 0.
- Untuk imej yang menghadap ke atas, correction_angle ialah 90.
- Untuk imej yang menghadap ke kiri, correction_angle ialah 180.
- Untuk imej yang menghadap ke bawah, correction_angle ialah 270.
3. Putar Imej:
- Gunakan pygame.transform.rotate(Player_1, angle) untuk memutarkan imej pemain mengikut sudut yang dikira.
- Dapatkan segi empat tepat imej yang diputar dengan rot_image_rect = rot_image.get_rect(center=player_rect.center) untuk mengekalkan pusatnya.
Kod Kemas Kini:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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>
|
Salin selepas log masuk
Kod yang dikemas kini ini mengira sudut dengan betul dan memutarkan pemain untuk menghala ke arah kedudukan tetikus.
Atas ialah kandungan terperinci Bagaimana untuk Memutar Imej Ke Arah Kursor Tetikus dalam PyGame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!