import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
screen.fill((255, 255, 255))
surf = pygame.Surface((100, 100)).convert_alpha()
surf.fill((0, 0, 0))
pygame.draw.rect(surf, (255,0,0), (0,0,50, 50))
angle = 1
clock = pygame.time.Clock()
running = True
while running:
clock.tick(30)
screen.fill((255, 255, 255))
surf2 = pygame.transform.rotate(surf, angle)
angle = (angle + 1) % 360
screen.blit(surf2, (300, 200))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.display.flip()
pygame.quit()
你先看看这个,比较清晰,旋转的时候尽量不要用圆
如果你想要旋转中心不发生变化,可以:
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
screen.fill((255, 255, 255))
surf = pygame.Surface((100, 100)).convert_alpha()
surf.fill((0, 0, 0))
rect = surf.get_rect()#得到初始图像的矩形位置
rect.center = (640/2,480/2) # 设置它的位置到中心
pygame.draw.rect(surf, (255,0,0), (0,0,50, 50))
angle = 1
clock = pygame.time.Clock()
running = True
while running:
clock.tick(30)
screen.fill((255, 255, 255))
surf2 = pygame.transform.rotate(surf, angle)
rect2 = surf2.get_rect()# 得到矩形位置
rect2.center = rect.center#将中心与原来的图像重合,得到新的矩形位置
angle = (angle + 1) % 360
screen.blit(surf2, (rect2[0],rect2[1]))#绘制在新的矩形位置上
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.display.flip()
pygame.quit()
|