📜  Pygame - 翻转图像(1)

📅  最后修改于: 2023-12-03 14:45:43.455000             🧑  作者: Mango

Pygame - 翻转图像

介绍

在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。

  • vertical_flip_image:垂直翻转后的图像。
  • horizontal_flip_image:水平翻转后的图像。
  • both_flip_image:同时进行水平和垂直翻转后的图像。

我们使用了pygame.display.update()来刷新屏幕,这里没有使用pygame.display.flip()是因为在这个程序中两个函数效果一样,但是pygame.display.update()的效率更高。

在主循环中,我们通过blit()函数将翻转后的图像渲染到屏幕上,并使用图片矩形对象的move()方法来设置它们的位置。最后我们调用clock.tick()函数来控制刷新频率。

参考链接