title: Multiple Bullets pygame
body: <p>I know there have been several topics on this but I still can't figure out how to make my robot shot multiple bullets... I want press my Space Button and shoot multiple bullets but i still can shoot only one bullet. I know that my code is a mess so I'm sorry. Thanks for help!</p>
  
  <p><a href="https://github.com/20nicolas/Game.git" rel="nofollow noreferrer">https://github.com/20nicolas/Game.git</a></p>
  
  <p>Here is my code:</p>
  
  <pre><code>import pygame as py
  import os
  
  py.init ()
  
  screen = py.display.set_mode ((800,600))
  
  
  
  bg = py.image.load('game-assets-game-background-sidescroller.png')
  clock = py.time.Clock ()
  
  
  idle = [py.image.load(os.path.join('player','Idle (1).png')),py.image.load(os.path.join('player','Idle (2).png')),py.image.load(os.path.join('player','Idle (3).png')),py.image.load(os.path.join('player','Idle (4).png')),py.image.load(os.path.join('player','Idle (5).png')),py.image.load(os.path.join('player','Idle (6).png')),py.image.load(os.path.join('player','Idle (7).png')),py.image.load(os.path.join('player','Idle (8).png')),py.image.load(os.path.join('player','Idle (9).png')),py.image.load(os.path.join('player','Idle (10).png'))]
  run_right = [py.image.load(os.path.join('player','Run (1).png')),py.image.load(os.path.join('player','Run (2).png')),py.image.load(os.path.join('player','Run (3).png')),py.image.load(os.path.join('player','Run (4).png')),py.image.load(os.path.join('player','Run (5).png')),py.image.load(os.path.join('player','Run (6).png')),py.image.load(os.path.join('player','Run (7).png')),py.image.load(os.path.join('player','Run (8).png'))]
  jump = [py.image.load(os.path.join('player','Jump (1).png')),py.image.load(os.path.join('player','Jump (2).png')),py.image.load(os.path.join('player','Jump (3).png')),py.image.load(os.path.join('player','Jump (4).png')),py.image.load(os.path.join('player','Jump (5).png')),py.image.load(os.path.join('player','Jump (6).png')),py.image.load(os.path.join('player','Jump (7).png')),py.image.load(os.path.join('player','Jump (8).png')),py.image.load(os.path.join('player','Jump (9).png')),py.image.load(os.path.join('player','Jump (10).png'))]
  shoot_idle = [py.image.load(os.path.join('player','Shoot (1).png')),py.image.load(os.path.join('player','Shoot (2).png')),py.image.load(os.path.join('player','Shoot (3).png')),py.image.load(os.path.join('player','Shoot (4).png'))]
  
  class player(object):
      def __init__(self,x,y,width,lenght):
          self.x = x
          self.y = y
          self.width = width
          self.lenght = lenght
          self.vel = 5
          self.right = False
          self.left = False
          self.standing = True
          self.idlecount = 0
          self.runcount = 0
          self.jumping = False
          self.jumpcount = 14
          self.direction = 1
          self.jumpingcount = 0
          self.shooting = False
          self.shootingcount = 0
  
      def draw (self,screen):
          if self.idlecount + 1 &gt;= 30:
              self.idlecount = 0
  
          if self.runcount + 1 &gt;= 24:
              self.runcount = 0
  
          if self.jumpingcount + 1 &gt;= 30:
              self.jumpingcount = 0
  
          if self.shootingcount + 1 &gt;= 9:
              self.shootingcount = 0
  
          if not (self.jumping):
              if not (self.standing):
  
                  if self.right:
                      screen.blit (run_right[self.runcount//3],(self.x,self.y))
                      self.runcount += 1
  
                  elif self.left:
                      screen.blit (run_left[self.runcount//3],(self.x,self.y))
                      self.runcount += 1
  
              else:
                  if self.shooting:
                      if self.direction == 1:
                          screen.blit (shoot_idle[self.shootingcount//2],(self.x,self.y))
                          self.shootingcount += 1
  
                      elif self.direction == -1:
                          screen.blit (shoot_idle2[self.shootingcount//2],(self.x,self.y))
                          self.shootingcount += 1
  
                  elif self.direction == 1:
                      screen.blit (idle[self.idlecount//3],(self.x,self.y))
                      self.idlecount += 1
  
                  elif self.direction == -1:
                      screen.blit (idle2[self.idlecount//3],(self.x,self.y))
                      self.idlecount += 1
  
          else:
              if self.direction == 1:
                  screen.blit (jump[self.jumpingcount//3],(self.x,self.y))
                  self.jumpingcount += 1
                  self.runcount = 0
  
              elif self.direction == -1:
                  screen.blit (jump2[self.jumpingcount//3],(self.x,self.y))
                  self.jumpingcount += 1
                  self.runcount = 0
  
  
  
  pows = [py.image.load(os.path.join('player','Bullet_000.png')),py.image.load(os.path.join('player','Bullet_001.png')),py.image.load(os.path.join('player','Bullet_002.png')),py.image.load(os.path.join('player','Bullet_003.png')),py.image.load(os.path.join('player','Bullet_004.png'))]
  
  class bullets (object):
      def __init__ (self,width,lenght):
          self.x = 0
          self.y = 0
          self.lenght = lenght
          self.width = width
          self.vel = 10
          self.shoot = False
          self.shootcount = 0
  
      def draw (self,screen):
          if self.shootcount + 1 &gt;= 15:
              self.shootcount = 0
  
          if man.direction == 1:
              if self.shoot:
                  screen.blit (pows[self.shootcount//3],(self.x,self.y))
                  self.shootcount += 1
                  self.x += self.vel
  
          elif man.direction == -1:
              if self.shoot:
                  screen.blit (pows2[self.shootcount//3],(self.x,self.y))
                  self.shootcount += 1
                  self.x -= self.vel
  
  def drawGameScreen ():
      screen.blit(bg,(0,0))
      man.draw (screen)
      bullet.draw (screen)
  
      py.display.update ()
  </code></pre>
  
  <p>here is the main loop:</p>
  
  <pre><code>    ##main loop
  
  man = player (100,430,100,100)
  bullet = bullets (50,50)
  game = True
  
  idle = [(py.transform.scale(idle[0],(man.width,man.lenght))),(py.transform.scale(idle[1],(man.width,man.lenght))),(py.transform.scale(idle[2],(man.width,man.lenght))),(py.transform.scale(idle[3],(man.width,man.lenght))),(py.transform.scale(idle[4],(man.width,man.lenght))),(py.transform.scale(idle[5],(man.width,man.lenght))),(py.transform.scale(idle[6],(man.width,man.lenght))),(py.transform.scale(idle[7],(man.width,man.lenght))),(py.transform.scale(idle[8],(man.width,man.lenght))),(py.transform.scale(idle[9],(man.width,man.lenght)))]
  run_right = [(py.transform.scale(run_right[0],(man.width,man.lenght))),(py.transform.scale(run_right[1],(man.width,man.lenght))),(py.transform.scale(run_right[2],(man.width,man.lenght))),(py.transform.scale(run_right[3],(man.width,man.lenght))),(py.transform.scale(run_right[4],(man.width,man.lenght))),(py.transform.scale(run_right[5],(man.width,man.lenght))),(py.transform.scale(run_right[6],(man.width,man.lenght))),(py.transform.scale(run_right[7],(man.width,man.lenght)))]
  jump = [(py.transform.scale(jump[0],(man.width,man.lenght))),(py.transform.scale(jump[1],(man.width,man.lenght))),(py.transform.scale(jump[2],(man.width,man.lenght))),(py.transform.scale(jump[3],(man.width,man.lenght))),(py.transform.scale(jump[4],(man.width,man.lenght))),(py.transform.scale(jump[5],(man.width,man.lenght))),(py.transform.scale(jump[6],(man.width,man.lenght))),(py.transform.scale(jump[7],(man.width,man.lenght))),(py.transform.scale(jump[8],(man.width,man.lenght))),(py.transform.scale(jump[9],(man.width,man.lenght)))]
  run_left = [(py.transform.flip(run_right[0],True,False)),(py.transform.flip(run_right[1],True,False)),(py.transform.flip(run_right[2],True,False)),(py.transform.flip(run_right[3],True,False)),(py.transform.flip(run_right[4],True,False)),(py.transform.flip(run_right[5],True,False)),(py.transform.flip(run_right[6],True,False)),(py.transform.flip(run_right[7],True,False))]
  idle2 = [(py.transform.flip(idle[0],True,False)),(py.transform.flip(idle[1],True,False)),(py.transform.flip(idle[2],True,False)),(py.transform.flip(idle[3],True,False)),(py.transform.flip(idle[4],True,False)),(py.transform.flip(idle[5],True,False)),(py.transform.flip(idle[6],True,False)),(py.transform.flip(idle[7],True,False)),(py.transform.flip(idle[8],True,False)),(py.transform.flip(idle[9],True,False))]
  jump2 = [(py.transform.flip(jump[0],True,False)),(py.transform.flip(jump[1],True,False)),(py.transform.flip(jump[2],True,False)),(py.transform.flip(jump[3],True,False)),(py.transform.flip(jump[4],True,False)),(py.transform.flip(jump[5],True,False)),(py.transform.flip(jump[6],True,False)),(py.transform.flip(jump[7],True,False)),(py.transform.flip(jump[8],True,False)),(py.transform.flip(jump[9],True,False))]
  shoot_idle = [(py.transform.scale(shoot_idle[0],(man.width,man.lenght))),(py.transform.scale(shoot_idle[1],(man.width,man.lenght))),(py.transform.scale(shoot_idle[2],(man.width,man.lenght))),(py.transform.scale(shoot_idle[3],(man.width,man.lenght)))]
  shoot_idle2 = [(py.transform.flip(shoot_idle[0],True,False)),(py.transform.flip(shoot_idle[1],True,False)),(py.transform.flip(shoot_idle[2],True,False)),(py.transform.flip(shoot_idle[3],True,False))]
  pows = [(py.transform.scale(pows[0],(bullet.width,bullet.lenght))),(py.transform.scale(pows[1],(bullet.width,bullet.lenght))),(py.transform.scale(pows[2],(bullet.width,bullet.lenght))),(py.transform.scale(pows[3],(bullet.width,bullet.lenght))),(py.transform.scale(pows[4],(bullet.width,bullet.lenght)))]
  pows2 = [(py.transform.flip(pows[0],True,False)),(py.transform.flip(pows[1],True,False)),(py.transform.flip(pows[2],True,False)),(py.transform.flip(pows[3],True,False)),(py.transform.flip(pows[4],True,False))]
  
  
  while game:
      clock.tick (30)
  
      for event in py.event.get():
          if event == py.QUIT:
              game = False
  
      keys = py.key.get_pressed ()
  
  
  
      if keys[py.K_RIGHT] and man.x &lt;= 700:
          man.x += man.vel
          man.right = True
          man.left = False
          man.standing = False
          man.idlecount = 0
          man.direction = 1
  
      elif keys[py.K_LEFT] and man.x &gt;= 0:
          man.x -= man.vel
          man.right = False
          man.left = True
          man.standing = False
          man.idlecount = 0
          man.direction = -1
  
      elif keys [py.K_SPACE]:
          if man.direction == 1:
              bullet.x = man.x + 75
              bullet.y = man.y + 20
              man.shooting = True
              bullet.shoot = True
  
          elif man.direction == -1:
              bullet.x = man.x - 25
              bullet.y = man.y + 20
              man.shooting = True
              bullet.shoot = True
  
  
      else:
          man.standing = True
          man.shooting = False
  
      if not(man.jumping):
          if keys[py.K_UP]:
              man.jumping = True
              man.right = False
              man.left = False
              man.standing = False
              man.walkcount = 0
      else:
          if man.jumpcount &gt;= -14:
              neg = 1
              if man.jumpcount &lt; 0:
                  neg = -1
              man.y -= (man.jumpcount ** 2) * 0.2 * neg
              man.jumpcount -= 1
          else:
              man.jumping = False
              man.jumpcount = 14
  
  
      drawGameScreen ()
  </code></pre>