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

Linda Hamilton
Libérer: 2024-10-24 01:26:02
original
703 Les gens l'ont consulté

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>
Copier après la connexion

É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>
Copier après la connexion

É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>
Copier après la connexion

É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>
Copier après la connexion
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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!