Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengorientasikan Imej Watak 2D secara Automatik ke arah Kursor Tetikus?
Cara Memutar Imej (Pemain) ke Arah Tetikus
Dalam bidang permainan menembak 2D, adalah penting untuk menjadikan anda watak pemain responsif kepada pergerakan tetikus pemain. Ini boleh dicapai dengan memutar imej pemain secara elegan untuk menghadap kursor tetikus. Dalam panduan ini, kami akan menyelidiki secara khusus cara untuk mencapai ini dalam PyGame.
Langkah 1: Menangkap Kedudukan Tetikus
Pertama, kita perlu mendapatkan semasa kedudukan tetikus menggunakan fungsi pygame.mouse.get_pos(). Ia mengembalikan tuple yang mengandungi koordinat x dan y tetikus, membolehkan kami menentukan orientasi yang diingini pemain.
<code class="python">mx, my = pygame.mouse.get_pos()</code>
Langkah 2: Mengira Vektor dan Sudut
Seterusnya, kami mengira vektor dari pusat pemain ke kursor tetikus menggunakan matematik vektor asas. Kami juga mengira sudut vektor ini menggunakan fungsi math.atan2, yang mengembalikan sudut antara paksi-x positif dan vektor yang diberikan dalam radian.
<code class="python">dx, dy = mx - player_rect.centerx, player_rect.centery - my angle = math.degrees(math.atan2(-dy, dx))</code>
Langkah 3: Menggunakan Sudut Pembetulan
Bergantung pada cara sprite pemain anda direka, anda mungkin perlu menggunakan sudut pembetulan pada sudut yang dikira. Ini adalah perlu kerana sistem koordinat PyGame mempunyai paksi-y menghala ke bawah, manakala kebanyakan imej sprite dilukis menghadap ke atas. Sudut pembetulan berbeza-beza berdasarkan orientasi sprite:
Langkah 4: Putaran Imej
Dengan sudut yang diperbetulkan dikira, kami kini boleh memutar imej pemain kami menggunakan fungsi pygame.transform.rotate(). Fungsi ini menerima imej dan sudut sebagai hujah dan mengembalikan salinan imej asal yang diputar.
<code class="python">rot_image = pygame.transform.rotate(Player_1, angle) rot_image_rect = rot_image.get_rect(center=player_rect.center)</code>
Langkah 5: Mengemas kini Paparan
Akhir sekali, kami mengemas kini paparan PyGame untuk mencerminkan imej yang diputar. Mula-mula, kami mengosongkan permukaan paparan menggunakan DS.fill(). Kemudian, kami memancarkan imej yang diputar ke permukaan paparan pada kedudukan yang diperbetulkan.
<code class="python">DS.fill(White) DS.blit(rot_image, rot_image_rect) pygame.display.flip()</code>
Dengan mengikuti langkah ini, anda boleh memperkasakan watak pemain anda untuk menghadap kursor tetikus secara dinamik dalam permainan menembak PyGame anda, memberikan pengalaman permainan yang intuitif dan responsif untuk pemain anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengorientasikan Imej Watak 2D secara Automatik ke arah Kursor Tetikus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!