我正在创建一个游戏,我需要旋转船,我如何才能从中心而不是左上角旋转船?我使用的是Python2.7和PyGame1.9。
这是我已经旋转图像的代码。
shipImg = pygame.transform.rotate(shipImg,-90)
但是,这会从拐角处旋转图像。
最佳答案
旋转精灵,然后将新矩形的中心设置为旧矩形的中心。这样,新的一个有相同的中心,当你做了,使它看起来像是围绕中心旋转。
下面是pygame wiki中的一个示例函数:
def rot_center(image, rect, angle):
"""rotate an image while keeping its center"""
rot_image = pygame.transform.rotate(image, angle)
rot_rect = rot_image.get_rect(center=rect.center)
return rot_image,rot_rect
下面是您在示例中使用它的方法:
# Draw ship image centered around 100, 100
oldRect = shipImg.get_rect(center=(100,100))
screen.blit(shipImg, oldRect)
# Now rotate the ship and draw it with the new rect,
# which will keep it centered around 100,100
shipImg, newRect = rot_center(shipImg,oldRect,-90)
screen.blit(shipImg, newRect)