📅  最后修改于: 2023-12-03 14:45:43.455000             🧑  作者: Mango
在Pygame中,我们可以使用pygame.transform.flip()函数来翻转图像。这个函数可以翻转图像的垂直方向、水平方向,也可以同时翻转。此外,我们还可以使用这个函数来创建动画效果。
import pygame
pygame.init()
screen_width = 400
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))
clock = pygame.time.Clock()
# 加载图片
image = pygame.image.load("image.png")
image_rect = image.get_rect(center=(screen_width // 2, screen_height // 2))
# 翻转图像
vertical_flip_image = pygame.transform.flip(image, False, True)
horizontal_flip_image = pygame.transform.flip(image, True, False)
both_flip_image = pygame.transform.flip(image, True, True)
# 主循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 渲染图像
screen.fill((255, 255, 255))
screen.blit(image, image_rect.move(-100, 0))
screen.blit(vertical_flip_image, image_rect.move(100, 0))
screen.blit(horizontal_flip_image, image_rect.move(-100, 100))
screen.blit(both_flip_image, image_rect.move(100, 100))
pygame.display.update()
clock.tick(60)
在示例代码中,我们通过pygame.image.load()函数加载了一张图片,并调用get_rect()方法获取图片的矩形对象。接着,我们使用pygame.transform.flip()函数生成了三个翻转后的图像:vertical_flip_image、horizontal_flip_image、both_flip_image。
我们使用了pygame.display.update()来刷新屏幕,这里没有使用pygame.display.flip()是因为在这个程序中两个函数效果一样,但是pygame.display.update()的效率更高。
在主循环中,我们通过blit()函数将翻转后的图像渲染到屏幕上,并使用图片矩形对象的move()方法来设置它们的位置。最后我们调用clock.tick()函数来控制刷新频率。