@Override
  protected void draw(Graphics2D graphics)
  {
    if (SideScroller.isAtTitleScreen)
    {
      spriteLoader.load("Content/Textures/titleScreen.png").draw(graphics,0,0);
      graphics.setFont(new java.awt.Font("Arial",java.awt.Font.BOLD,28));
      graphics.drawString("Press [Space] to Continue...",220,500);
      return;
    }
    gameMap.draw(graphics,camera.getPosition());
    character.draw(graphics,camera);
    for(int i = 0; i < enemies.size(); i++)
    {
      ((AICharacter)enemies.get(i)).draw(graphics,camera);
    } 
    /* this is so that the animations dont last for ever */
    for(int i =0 ; i < bonuses.size();i++)
    {
         long time = (Long)TimeBonus.get(i);
         AICharacter topicBonus = (AICharacter)bonuses.get(i);
        if(topicBonus.getName().equals("Money") && topicBonus.isAlive()) 
        {       
            //checking the time passed
            if((System.currentTimeMillis()-time)<250)
            {
                ((AICharacter)bonuses.get(i)).draw(graphics,camera);
            }else{
                //removing and trying to clear the memory
                bonuses.remove(i);
                topicBonus.die();
                TimeBonus.remove(i);
                System.gc();
            }
            //same here but for other objects
        }else if(topicBonus.isAlive())
        {
            if((System.currentTimeMillis()-time)<10000)
            {
                ((AICharacter)bonuses.get(i)).draw(graphics,camera); 
            }else{
                bonuses.remove(i);
                topicBonus.die();
                TimeBonus.remove(i);
                System.gc();
            }
        }
     }
    drawUI(graphics);
  }