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 :
É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 utilisantDS.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>
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!