@Override
	public void paintComponent(Graphics gc){
		
		// Clear the screen
		super.paintComponent(gc);
		
		gc.setColor(player.color);
		gc.fillRect((int) player.posX, (int) player.posY, (int) player.width, (int) player.height);
		
		for(Missile missile : missiles){
			if(missile != null){
				gc.setColor(missile.color);
				gc.fillOval((int) missile.posX, (int) missile.posY, (int) missile.width, (int) missile.height);
			}
		}
		
		for(Enemy enemy : munchkins){
			if(enemy != null){
				gc.drawImage(enemy.image, (int) enemy.posX, (int) enemy.posY, 40, 40, null);
			}
		}
		
		for(Enemy enemy : ufos){
			if(enemy != null){
				gc.drawImage(enemy.image, (int) enemy.posX, (int) enemy.posY, 40, 40, null);
			}
		}
		
		for(Laser laser : lasers){
			if(laser != null){
				gc.setColor(laser.color);
				gc.fillOval((int) laser.posX, (int) laser.posY, (int) laser.width, (int) laser.height);
			}
		}
		
		for(Enemy enemy : munchkins){
			if(enemy != null){
				for(Laser laser : enemy.lasers){
					if(laser != null){
						gc.setColor(laser.color);
						gc.fillOval((int) laser.posX, (int) laser.posY, (int) laser.width, (int) laser.height);
					}
				}
			}
		}
		
		for(Enemy enemy : ufos){
			if(enemy != null){
				for(Laser laser : enemy.lasers){
					if(laser != null){
						gc.setColor(laser.color);
						gc.fillOval((int) laser.posX, (int) laser.posY, (int) laser.width, (int) laser.height);
					}
				}
			}
		}
		
		gc.setColor(Color.GREEN);
		gc.drawString(player.lives + " Lives", 10, 20);
		if(getMissilesOnField() != 1){
			gc.drawString(getMissilesOnField() + " Missiles", 10, 40);
		}else{
			gc.drawString(getMissilesOnField() + " Missile", 10, 40);
		}
		if(getEnemiesLasersOnField() != 1){
			gc.drawString(getEnemiesLasersOnField() + " Enemies' Lasers", 10, 60);
		}else{
			gc.drawString(getEnemiesLasersOnField() + " Enemies' Laser", 10, 60);
		}
		gc.drawString("Time: " + elapsedTime / 1000, 10, 80);
		gc.drawString("Score: " + player.score, 10, 100);
		gc.drawString("High Score: " + getHighScore(), 10, 120);
		gc.drawString("Ammo: " + player.ammo, 10, 140);
		// gc.drawString("FPS: " + (new DecimalFormat("#.0")).format(realFPS), 10, 160);
		if(!isMatch){
			gc.setColor(Color.RED);
			gc.setFont(new Font("Calibri", Font.BOLD, 18));
			gc.drawString("Game Over", getCenteredStringPositionX("Game Over", gc, new Font("Calibri", Font.BOLD, 18)), this.getHeight() / 2);
		}
		
	}