在我的游戏中,我正在创建炮塔(一种在地面上使用的机枪)。问题是我使用操纵杆移动角色,当操纵杆向下时,y速度为正(因此它可以向下移动),而向上移动则相反。如果if语句之一发生,然后if检查您当前的角度并查看您指向的方向,那么它将允许您移动。主要的问题是,当我向上移动操纵杆时,枪尖会变得扑朔迷离。
我已经尝试过创建一个存储方向的变量,但是这会导致相同的问题,所以我放弃了这个想法,回到了以前的想法。还有一个炮塔架,炮塔被拉到
fetchDiscoverMovies()
实际结果是,当您向上推动操纵杆时,机枪指向下方。这是我的意思:
有时候操纵杆指向右边时,枪不显示:
答案 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)