Comment faire pivoter une image autour de son centre à l'aide de Pygame ?
Réponse courte :
Pour faire pivoter une image tout en préservant son centre et sa taille à l'aide de Pygame, ajustez les dimensions du rectangle de manière appropriée. Obtenez le rectangle de l'image d'origine et créez une image pivotée à l'aide de pygame.transform.rotate(). Copiez une partie de l'image pivotée qui s'aligne sur le rectangle d'origine et utilisez-la comme sortie.
Réponse détaillée :
Lors de la rotation d'une image à l'aide de pygame.transform. rotate(), la taille de l'image résultante augmente. Pour conserver la taille d'origine, il est nécessaire de placer l'image pivotée au même emplacement que l'image d'origine.
Voici un bloc de code mis à jour qui corrige l'exception :
def rot_center(image, angle, x, y): """Rotate an image while keeping its center and size""" rotated_image = pygame.transform.rotate(image, angle) new_rect = rotated_image.get_rect(center=image.get_rect(center=(x, y)).center) return rotated_image, new_rect
Cette fonction renvoie l'image pivotée et le rectangle englobant de l'image pivotée.
Alternativement, vous pouvez utiliser la fonction blitRotateCenter() pour faire pivoter et bliter l'image pivotée. image :
def blitRotateCenter(surf, image, topleft, angle): rotated_image = pygame.transform.rotate(image, angle) new_rect = rotated_image.get_rect(center=image.get_rect(topleft=topleft).center) surf.blit(rotated_image, new_rect)
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!