title: multiple bullets pygame space invaders
body: <p>I'm fairly new to python and I'm trying to make a little space invaders game. My problem is that I can not have more then one bullet on the screen. I'd like to be able to fire at least 3 like in the original game. What would be the best way to do so ?</p>
  
  <p>Here is my code:</p>
  
  <pre><code>from pygame import *
  import random
  
  class Sprite:
  
          def __init__(self, xpos, ypos, filename):
                  self.x = xpos
                  self.y = ypos
                  self.bitmap = image.load(filename)
                  self.bitmap.set_colorkey((0,0,0))
          def set_position(self, xpos, ypos):
                  self.x = xpos
                  self.y = ypos
          def render(self):
                  screen.blit(self.bitmap, (self.x, self.y))
  
  def Intersect(s1_x, s1_y, s2_x, s2_y):
          if (s1_x &gt; s2_x - 30) and (s1_x &lt; s2_x + 30) and (s1_y &gt; s2_y - 30) and (s1_y &lt; s2_y + 30):
                  return 1
          else:
                  return 0
  
  init()
  screen = display.set_mode((640,480))
  key.set_repeat(1, 1)
  display.set_caption('PyInvaders')
  backdrop = image.load('data/backdrop.bmp') 
  enemies = []
  
  x = 0
  count = 0
  
  for count in range(10):
      if count &lt; 10:
          enemies.append(Sprite(50 * x + 50, 50, 'data/baddie.bmp'))
          x += 1
          count += 1
      else:
          x = 0
          enemies.append(Sprite(100 * x + 100, 50, 'data/baddie.bmp'))
          x += 1
  
  
  
  
  
  hero = Sprite(20, 400, 'data/hero.bmp')
  ourmissile = Sprite(0, 480, 'data/heromissile.bmp')
  enemymissile = Sprite(0, 480, 'data/baddiemissile.bmp')
  gameover = image.load('data/gameover.bmp')
  
  
  
  quit = 0
  enemyspeed = 4
  timer = 0        
  
  
  while quit == 0:
  
          heromid = hero.x + 16
          screen.blit(backdrop, (0, 0))
  
          for count in range(len(enemies)):
                  enemies[count].x += enemyspeed
                  enemies[count].render()
  
          if enemies[len(enemies)-1].x &gt; 590:
                  enemyspeed = -3
                  for count in range(len(enemies)):
                          enemies[count].y += 5
  
          if enemies[0].x &lt; 10:
                  enemyspeed = 3
                  for count in range(len(enemies)):
                          enemies[count].y += 5
  
          if ourmissile.y &lt; 640 and ourmissile.y &gt; 0:
              ourmissile.render()
              ourmissile.y += -5
              timer  = timer + 1
  
          if enemymissile.y &gt;= 480 and len(enemies) &gt; 0:
              enemymissile.x = enemies[random.randint(0, len(enemies) - 1)].x + 16
              enemymissile.y = enemies[0].y
  
          if Intersect(hero.x, hero.y, enemymissile.x, enemymissile.y):
             quit = 1
  
          for count in range(0, len(enemies)):
              if Intersect(ourmissile.x, ourmissile.y, enemies[count].x, enemies[count].y):
                      del enemies[count]
                      break
  
          if len(enemies) == 0:
              quit = 1
  
          for ourevent in event.get():
                  if ourevent.type == QUIT:
                          quit = 1
                  if ourevent.type == KEYDOWN:
                          if ourevent.key == K_RIGHT and hero.x &lt; 590:
                                  hero.x += 5
                          if ourevent.key == K_LEFT and hero.x &gt; 10:
                                  hero.x -= 5
                          if ourevent.key == K_SPACE:
                              if timer &lt; 400:
                                  timer = 0
                                  ourmissile.x = heromid
                                  ourmissile.y = hero.y
  
          enemymissile.render()
          enemymissile.y += 5
  
          hero.render()
  
          display.update()
          time.delay(10)
  
  
  while quit == 1:
      screen.blit(gameover,(0,0))
      display.update()
      if ourevent.type == KEYDOWN:
          if ourevent.key == K_SPACE:
              quit == 0
  </code></pre>