#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, Рад, что смог помочь. Если бы моего ответа было достаточно, не могли бы вы принять его? Спасибо