Maison  >  Article  >  développement back-end  >  Comment orienter automatiquement une image de personnage 2D vers le curseur de la souris ?

Comment orienter automatiquement une image de personnage 2D vers le curseur de la souris ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 01:26:02692parcourir

How to Automatically Orient a 2D Character Image towards the Mouse Cursor?

Comment faire pivoter une image (lecteur) dans le sens de la souris

Dans le domaine des jeux de tir 2D, il est crucial de faire en sorte que votre personnage du joueur sensible aux mouvements de la souris du joueur. Ceci peut être réalisé en faisant pivoter élégamment l’image du joueur pour faire face au curseur de la souris. Dans ce guide, nous approfondirons les détails de la façon d'accomplir cela dans PyGame.

Étape 1 : Capturer la position de la souris

Tout d'abord, nous devons obtenir la position actuelle de la souris. position de la souris à l'aide de la fonction pygame.mouse.get_pos(). Il renvoie un tuple contenant les coordonnées x et y de la souris, nous permettant de déterminer l'orientation souhaitée par le joueur.

<code class="python">mx, my = pygame.mouse.get_pos()</code>

Étape 2 : Calculer le vecteur et l'angle

Ensuite, nous calculons le vecteur du centre du joueur au curseur de la souris en utilisant les mathématiques vectorielles de base. Nous calculons également l'angle de ce vecteur à l'aide de la fonction math.atan2, qui renvoie l'angle entre l'axe des x positif et un vecteur donné en radians.

<code class="python">dx, dy = mx - player_rect.centerx, player_rect.centery - my
angle = math.degrees(math.atan2(-dy, dx))</code>

Étape 3 : Application de l'angle de correction

En fonction de la conception de votre sprite de joueur, vous devrez peut-être appliquer un angle de correction à l'angle calculé. Cela est nécessaire car le système de coordonnées de PyGame a l'axe y pointant vers le bas, alors que la plupart des images de sprites sont dessinées vers le haut. L'angle de correction varie en fonction de l'orientation du sprite :

  • En regardant à droite : 0 degrés
  • En regardant vers le haut : 90 degrés
  • En regardant à gauche : 180 degrés
  • Regard vers le bas : 270 degrés

Étape 4 : Rotation de l'image

Une fois l'angle corrigé calculé, nous pouvons maintenant faire pivoter l'image de notre joueur à l'aide du pygame.transform.rotate(). Cette fonction accepte l'image et l'angle comme arguments et renvoie une copie pivotée de l'image originale.

<code class="python">rot_image = pygame.transform.rotate(Player_1, angle)
rot_image_rect = rot_image.get_rect(center=player_rect.center)</code>

Étape 5 : Mise à jour de l'affichage

Enfin, nous mettons à jour l'affichage PyGame pour refléter l'image pivotée. Tout d'abord, nous effaçons la surface d'affichage en utilisant

DS.fill(). Ensuite, nous plaçons l'image pivotée sur la surface d'affichage à la position corrigée.

<code class="python">DS.fill(White)
DS.blit(rot_image, rot_image_rect)
pygame.display.flip()</code>
En suivant ces étapes, vous pouvez permettre à votre personnage de joueur de faire face dynamiquement au curseur de la souris dans votre jeu de tir PyGame, offrant ainsi une expérience de jeu intuitive et réactive pour vos joueurs.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn