python - 有没有一种简单的方法可以在 pygame 中旋转图像?
问题描述
我刚开始学习 pygame,我有一张图片 [ https://imgur.com/a/t24fNiA],它从一边移动到另一边。它是一个圆圈,我希望它每次移动时旋转/滚动一点。
我已经在网上查到了这一点,但无法真正将其应用到我自己的工作中。到目前为止,我只有def rotcenter(image, angle):
. 我真的不知道从这里去哪里。
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
xchange = -5
# image rotates
elif event.key == pygame.K_RIGHT:
xchange = 5
# image rotates
代替# image rotates
,我想调用一个将图像旋转一定角度的子程序。
理想情况下它不应该走得太远,因为 x 的每个变化都是 5,但希望有人可以帮助我想出一个解决方案。请尝试简化/解释我可能不理解的内容,我只使用了 pygame 大约 40 分钟,主要是阅读教程。
任何帮助,将不胜感激!谢谢 :)
解决方案
您可以使用 pygame.transform.rotate 来旋转图像。
def rotcenter(image, angle):
return pygame.transform.rotate(image, angle)
将是你的功能。您将已加载的 pygame 图像传递给它,它会返回一个旋转的新表面。所以当你想旋转图像时,你会做类似的事情
image = rotcenter(image, 5)
然后 blit 新图像。
我用来测试的代码:
import pygame
pygame.init()
display = pygame.display.set_mode((400, 400))
image = pygame.image.load('test.png') #Use the name of your image
rotated = pygame.transform.rotate(image, 90)
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
display.blit(image, (0, 0))
display.blit(rotated, (100, 0))
pygame.display.flip()
pygame.quit()
推荐阅读
- python - 如何解决“DictReader”对象不可下标错误?
- kubernetes - 在 openshift/kubernetes 中打印当前命名空间的简单命令或环境变量
- python - 具有依赖项初始化错误的自定义包:ModuleNotFoundError 或 ImportError
- python - Keras 从多个标签的目录流出
- c - C 原语可以比 void* 宽吗?
- rust - 为什么对于整数类型,`sum += x` 与 `sum += *x` 的工作方式相同?这是自动取消引用吗?
- python - 下载 cloudtrail 事件
- javascript - 保持来自不同父 div 的按钮同时处于活动状态
- node.js - Electron 是针对不同的 Node.js 版本编译的
- python - 清理 Twitter 数据 pandas python