蟒蛇在2个特定地点随机繁殖敌人



嗨,我想为一个星球制作一个精灵,它要么出现在屏幕的顶部,就像在屏幕的一半,这样你只能得到一半的星球,要么出现在底部。但我想让它随机选择在屏幕顶部还是底部。我想不通。我的屏幕宽1000,高500。

class Planets(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image_original = random.choice(planet_images)
self.image = pygame.transform.scale(self.image_original, (400, 400))
self.image.set_colorkey(BLACK)
self.rect = self.image.get_rect()
self.radius = int(self.rect.width * .95 / 2)
# Make the hitbox visible --->
pygame.draw.circle(self.image, RED, self.rect.center, self.radius)
self.rect.x = (1000)
self.rect.y = -200
self.speedy = 0
self.speedx = -2
def update(self):
# killing and spawning new enemies when they go of the screen
self.rect.x += self.speedx
self.rect.y += self.speedy
if self.rect.left < - 1400:
self.kill()
new_planets = Planets()
all_sprites.add(new_planets)
planets.add(new_planets)

您可以像以前对图像那样再次使用random.choice。这一次,您在屏幕上构建了一个所需位置的列表(作为带有x和y坐标的元组(,并让随机选择在哪里生成

lst_of_coord = [(1000, -200), (500, 500)] # each tuple for a x,y position on your screen
self.rect.x, self.rect.y = random.choice(lst_of_coord)

非常感谢。解决方案奏效了。它现在在的两个位置之一随机生成

class Planets(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image_original = random.choice(planet_images)
self.image = pygame.transform.scale(self.image_original, (400, 400))
self.image.set_colorkey(BLACK)
self.rect = self.image.get_rect()
self.radius = int(self.rect.width * .95 / 2)
# Make the hitbox visible --->
pygame.draw.circle(self.image, RED, self.rect.center, self.radius)
list_of_cords = [(1000, -200), (1000, 400)]
self.rect.x, self.rect.y = random.choice(list_of_cords)
self.speedy = 0
self.speedx = -2
def update(self):
# killing and spawning new enemies when they go of the screen
self.rect.x += self.speedx
self.rect.y += self.speedy
if self.rect.left < - 1400:
self.kill()
new_planets = Planets()
all_sprites.add(new_planets)
planets.add(new_planets)

最新更新