Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memutar Imej Pemain Secara Dinamik untuk Menghadapi Kursor Tetikus dalam Permainan Menembak 2D?

Bagaimana untuk Memutar Imej Pemain Secara Dinamik untuk Menghadapi Kursor Tetikus dalam Permainan Menembak 2D?

Barbara Streisand
Barbara Streisandasal
2024-10-23 22:28:021073semak imbas

How to Dynamically Rotate a Player Image to Face the Mouse Cursor in 2D Shooting Games?

Bagaimana untuk Memutar Imej(Pemain) ke Arah Tetikus?

Apabila mencipta permainan menembak 2D, adalah penting untuk membolehkan pemain halakan ke arah kursor tetikus. Walau bagaimanapun, mencari penyelesaian untuk perkara ini boleh menjadi mencabar.

Penerangan Masalah

Imej pemain (Player_1) perlu berputar secara dinamik berdasarkan kedudukan tetikus untuk meningkatkan sasaran pengalaman.

Penyelesaian

Untuk mencapainya, kita perlu mengira sudut antara kedudukan pemain dan kedudukan kursor tetikus. Ini dicapai seperti berikut:

<code class="python">import pygame, sys, os
import math

# ... (rest of the code remains the same)

def game_loop():
    while True:
        events()

        mx, my = pygame.mouse.get_pos() # Get the mouse position
        player_rect = Player_1.get_rect(topleft=(P_X,P_Y)) # Get the player's rectangle

        dx, dy = mx - player_rect.centerx, player_rect.centery - my # Calculate the vector from the player to the mouse
        angle = math.degrees(math.atan2(-dy, dx)) - correction_angle # Compute the angle of the vector

        rot_image = pygame.transform.rotate(Player_1, angle) # Rotate the player image by the calculated angle
        rot_image_rect = rot_image.get_rect(center=player_rect.center) # Get the rotated image's rectangle

        DS.fill(White)
        DS.blit(rot_image, rot_image_rect) # Blit the rotated player image
        pygame.display.flip()</code>

Sudut_pembetulan ialah pemalar yang bergantung pada orientasi awal sprite pemain. Nilai biasa ialah:

  • 0 darjah: Sprite memandang ke kanan.
  • 90 darjah: Sprite melihat ke atas.
  • 180 darjah: Sprite memandang ke kiri.
  • 270 darjah: Sprite melihat ke bawah.

Kaedah ini membolehkan imej pemain berputar dan membidik dengan tepat ke arah kedudukan kursor tetikus, meningkatkan pengalaman permainan.

Atas ialah kandungan terperinci Bagaimana untuk Memutar Imej Pemain Secara Dinamik untuk Menghadapi Kursor Tetikus dalam Permainan Menembak 2D?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn