ProblemKann nicht mehr als 1 Sprites angezeigt werden - PyGame
Mein Problem ist, dass ich ein Spiel haben, die 8 Hindernisse zu Beginn des Spiels erzeugt. Das Problem ist, dass wenn ich die Liste Hindernisse durchlaufe und die Sprites-Gruppe aktualisiere, es nur 1 Sprite erzeugt.
What I Want To Happen
Wenn das Spiel lädt, I 8 Quadrate wollen wahllos Geschwindigkeiten vom oberen Rand des Fensters fliegen nach unten, und an zufälligen Positionen beginnen.
Was Derzeit
Derzeit geschieht, wenn das Spiel wird geladen, nur ein Platz auf dem Bildschirm fällt.
Python-Code
OBSTICLES_AMOUNT = 8
class Obstacle(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((30, 30))
self.image.fill(BLUE)
self.rect = self.image.get_rect()
self.rect.x = random.randrange(0, WIDTH - self.rect.width)
self.rect.y = random.randrange(-100, -40)
self.velY = 6
def animate(self):
self.rect.y += self.velY
class Game(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
pygame.init()
pygame.mixer.init()
self.screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(TITLE)
self.running = True
self.clock = pygame.time.Clock()
self.obstaclesList = []
self.allSprites = pygame.sprite.Group()
self.obstacles = pygame.sprite.Group()
def new(self):
# create a new game
# add obstacles to list
for i in range(OBSTICLES_AMOUNT):
self.obstacle = Obstacle()
self.obstaclesList.append(self.obstacle)
# make new sprite using list
for i in self.obstaclesList:
self.allSprites.add(i)
self.obstacles.add(i)
self.gameLoop()
def gameLoop(self):
# main game loop
while self.running:
self.draw()
def draw(self):
self.screen.fill(WHITE)
self.allSprites.draw(self.screen)
for sprites in self.obstaclesList:
sprites.update()
self.allSprites.update()