图像旋转方向错误

时间:2019-06-13 20:12:05

标签: python image pygame rotation

在我的游戏中,我正在创建炮塔(一种在地面上使用的机枪)。问题是我使用操纵杆移动角色,当操纵杆向下时,y速度为正(因此它可以向下移动),而向上移动则相反。如果if语句之一发生,然后if检查您当前的角度并查看您指向的方向,那么它将允许您移动。主要的问题是,当我向上移动操纵杆时,枪尖会变得扑朔迷离。

我已经尝试过创建一个存储方向的变量,但是这会导致相同的问题,所以我放弃了这个想法,回到了以前的想法。还有一个炮塔架,炮塔被拉到

fetchDiscoverMovies()

实际结果是,当您向上推动操纵杆时,机枪指向下方。这是我的意思:

enter image description here

在这种情况下,炮塔最终指向下方: enter image description here

我应该期望的是,当我向上移动操纵杆时,转塔指向上方。 enter image description here

有时候操纵杆指向右边时,枪不显示:

1 个答案:

答案 0 :(得分:1)

基本上,您需要反转旋转图像的方向。因此,要翻转它,请将其再旋转180度。 将您的rotate方法中的行更改为

self.picture = pygame.transform.rotate(self.picture, angle+180)

我不知道您的确切设置,但这可能仅适用于上下情况。如果将操纵杆向左放,枪可能仍指向右。如果发生这种情况,请将其更改为

self.picture = pygame.transform.rotate(self.picture, 180-angle)

这不只是翻转它,旋转方向也相反。增大角度实际上会减少旋转。

再次,这可能不起作用。如果您向上移动操纵杆,它可能指向正确。如果是这样,请尝试将180更改为另一个数字,例如90或270。这会将旋转沿一个方向或另一个方向偏移90度。

self.picture = pygame.transform.rotate(self.picture, 90-angle)

self.picture = pygame.transform.rotate(self.picture, 270-angle)