微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame 旋转大小问题

如何解决Pygame 旋转大小问题

我正在尝试旋转图像,使其始终面向鼠标,但我注意到图像大小正在发生变化。我正在尝试排除故障,但没有运气。我希望得到一些建议。

这是我正在使用的:

ang = 360 - math.atan2(mousey - 540,mousex - 960) * 180 / math.pi
rotcircle = pygame.transform.scale(pygame.transform.rotate(redcircle,ang),[100,100])
rect = rotcircle.get_rect(center=(960,540))
screen.blit(rotcircle,rect)

解决方法

想一想。例如,如果将图像旋转 45 度,则表面自然必须更大以容纳角,否则角会伸出原始表面的边界。因此,如果您旋转图像,它会变大,正如 documentation 所说:

除非以 90 度为增量旋转,图像将被填充得更大以保持新尺寸。如果图像具有像素 alpha,则填充区域将是透明的。否则 pygame 将选择与 Surface colorkey 或左上角像素值匹配的颜色。

您明确将表面强制为 100x100,这意味着图像越接近旋转 45 度(例如),它就会显得越小。简单的解决方案是停止调整图像大小,或使用另一个足够大的表面来容纳旋转的图像,然后将旋转的图像 blit 到其上。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。