改变旋转方向 Pygame



如何在Pygame中更改旋转图像/矩形的方向?应用正度值和负度值有效,但它似乎只能在整个窗口中旋转一个方向。有没有办法确保旋转方向的变化?


也许每 5 秒更改一次旋转图像的旋转,或者如果能够在击中 X 或 Y 轴时更改旋转的方向。我在下面添加了一些代码。

似乎只要我指定速度并具有位置子句,rect.move_ip切换移动方向就很容易,它就可以做我想做的事。不幸的是,轮换不是那样的。在这里,我添加角度以确保它旋转,但无论我尝试什么,我都无法否定旋转。


def rotate_image(self):  #rotate image
    orig_rect = self.image.get_rect()
    rot_image = pygame.transform.rotate(self.image, self.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
def render(self):
    self.screen.fill(self.bg_color)
    self.rect.move_ip(0,5)                 #Y axis movement at 5 px per frame
    self.angle += 5             #add 5 anglewhen the rect has not hit one of the window
    self.angle %= 360
    if self.rect.left < 0 or self.rect.right > self.width:         
        self.speed[0] = -self.speed[0]
        self.angle = -self.angle           #tried to invert the angle 
        self.angle -= 5                    #trying to negate the angle rotation
        self.angle %= 360
    self.screen.blit(self.rotate_image(),self.rect)
    pygame.display.flip()

我真的很想知道如何反转图像的旋转。您可以提供自己的示例。

我所知,只有一种方法可以使用

    pygame.transform.rotate(surface, angle)

您可以查看官方文档

http://www.pygame.org/docs/ref/transform.html这是示例代码:-

    screen = pygame.display.set_mode((640,480))
    surf = pygame.image.load("/home/image.jpeg").convert()
    while True:
       newsurf = pygame.transform.rotate(surf, -90)
       screen.blit(newsurf, (100,100))
       pygame.display.flip()
       time.sleep(2)

此代码将在每 2 秒后继续沿顺时针方向旋转图像 90 度。希望这有帮助..

相关内容

  • 没有找到相关文章