为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Pygame围绕其中心旋转图像?

如何使用Pygame围绕其中心旋转图像?

眼眸繁星 2019-09-06 16:28:53
我一直试图在使用中围绕其中心旋转图像,pygame.transform.rotate()但它不起作用。特别是挂起的部分是rot_image = rot_image.subsurface(rot_rect).copy()。我得到了例外:ValueError: subsurface rectangle outside surface area以下是用于旋转图像的代码:def rot_center(image, angle):    """rotate an image while keeping its center and size"""    orig_rect = image.get_rect()    rot_image = pygame.transform.rotate(image, angle)    rot_rect = orig_rect.copy()    rot_rect.center = rot_image.get_rect().center    rot_image = rot_image.subsurface(rot_rect).copy()    return rot_image
查看完整描述

3 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您正在删除旋转创建的矩形。您需要保留rect,因为它在旋转时会改变大小。


如果要保留对象位置,请执行以下操作:

def rot_center(image, angle):

    """rotate a Surface, maintaining position."""


    loc = image.get_rect().center  #rot_image is not defined 

    rot_sprite = pygame.transform.rotate(image, angle)

    rot_sprite.get_rect().center = loc

    return rot_sprite


    # or return tuple: (Surface, Rect)

    # return rot_sprite, rot_sprite.get_rect()


查看完整回答
反对 回复 2019-09-06
  • 3 回答
  • 0 关注
  • 4911 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信