Comment faire pivoter une image (un joueur) dans le sens de la souris ?
Lors de la création de jeux de tir 2D, il est essentiel de permettre au joueur de visez dans la direction du curseur de la souris. Cependant, trouver une solution à ce problème peut s'avérer difficile.
Description du problème
L'image du joueur (Player_1) doit pivoter dynamiquement en fonction de la position de la souris pour améliorer la visée. expérience.
Solution
Pour y parvenir, nous devons calculer l'angle entre la position du joueur et la position du curseur de la souris. Ceci est réalisé comme suit :
<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>
Le correction_angle est une constante qui dépend de l'orientation initiale du sprite du joueur. Les valeurs courantes sont :
Cette méthode permet à l'image du joueur de pivoter et de viser avec précision vers la position du curseur de la souris, améliorant ainsi l'expérience de jeu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!