Пули случайного направления?

#python #random #projectile

#python #Случайный #снаряд

Вопрос:

Я работал над игрой с пулевым адом, но когда я пытаюсь заставить пули появляться в случайных направлениях и двигаться по прямой, я, похоже, не могу этого сделать. Я вижу, что перемещение пули /- определенных пикселей по осям x и y приводит к тому, что они перемещаются случайным образом, что кажется неестественным.

Мой код:

 class Bullet(pygame.sprite.Sprite):
    def __init__(self):

        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.image.load("Bullet.png")
        self.rect = self.image.get_rect()

    def update(self) :

        self.rect.x  = random.randrange(-10,10) 
        self.rect.y  = random.randrange(-10,10)
  

Ответ №1:

В __init__ методе вы можете создавать self.dx self.dy переменные and, которые будут случайным образом выбраны один раз при создании экземпляра, а затем оставаться постоянными каждый update :

 class Bullet(pygame.sprite.Sprite):

    def init(self):
        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.image.load("Bullet.png")
        self.rect = self.image.get_rect()

        self.dx = random.randrange(-10,10)
        self.dy = random.randrange(-10,10)

    def update(self):
        self.rect.x  = self.dx
        self.rect.y  = self.dy
  

Комментарии:

1. Вау, большое вам спасибо, оказывается, решение было намного проще, чем я думал

2. @user3786223, Рад, что смог помочь. Если бы моего ответа было достаточно, не могли бы вы принять его? Спасибо