这是我的玩家类
class Player:
def __init__(self, image):
self.rotation_angle = 0
def rotate(self, keys, left, right):
if keys[right]:
self.rotation_angle -= 0.5
if keys[left]:
self.rotation_angle += 0.5
self.rotated_player = pygame.transform.rotate(self.player, (self.rotation_angle))
现在基于,我需要射击子弹。所以我做了以下事情。self.rotation_angle
class Bullet:
def __init__(self):
self.pos = [player1.pos[0], player1.pos[1]]
self.direction = math.radians(player1.rotation_angle)
self.bullet = pygame.Surface((5, 20))
self.rotated_bullet = pygame.transform.rotate(self.bullet, (self.direction))
self.bullet.fill((100, 200, 120))
self.time = 0
def shoot(self):
self.pos[0] += math.cos(self.direction) * self.time
self.pos[1] += math.sin(self.direction) * self.time
self.time += 0.5
但是这个剂量的工作和由此产生的子弹只是朝着某个随机的方向移动。我尝试不将角度转换为弧度并将y轴的值更改为负值,但它不起作用。如何准确计算子弹的方向?感谢您的任何帮助。self.direction
慕斯709654
相关分类