pygame 不旋转表面

问题描述 投票:0回答:1
import pygame

WIDTH, HEIGHT = 1024, 768
pygame.init()
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
skala = pygame.image.load("rock2x3b.jpg")

play = True

if __name__ == "__main__":
    FPS = 60
    clock = pygame.time.Clock()
    square = pygame.Surface((50, 50))
    rotated_square = pygame.transform.rotate(square, 30)
    WIN.blit(skala, (0, 0))
    WIN.blit(rotated_square, (60,60))
    pygame.display.flip()
    while play:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                quit(0)

此代码应显示旋转的正方形。但请参阅带有结果的图像。 为什么旋转不起作用?

(https://i.stack.imgur.com/JDkXH.png)

pygame rotation surface
1个回答
0
投票

您需要创建一个带有 Alpha 通道的表面:

square = pygame.Surface((50, 50))

square = pygame.Surface((50, 50), pygame.SRCALPHA)

表面始终是矩形。当表面旋转时,表面会变大(请参阅如何使用 PyGame 围绕其中心旋转图像?)。表面的新区域必须填充一些东西。如果表面没有 Alpha 通道并且是单色的,则新区域将始终填充表面的颜色。结果是一个更大的实心矩形。

© www.soinside.com 2019 - 2024. All rights reserved.