public void collisionCheck(){
		
		Shape missileShape;
		Shape playerShape;
		Shape laserShape = null;
		Shape enemyShape = null;
		
		if(player.posX + player.width > this.getWidth()){
			player.posX = this.getWidth() - player.width;
		}
		if(player.posX < 0){
			player.posX = 0;
		}
		
		// Checks whether a missile has collided with the player
		for(int i = 0; i < missiles.length; i++){
			if(missiles[i] != null){
				missileShape = new Ellipse2D.Double(missiles[i].posX, missiles[i].posY, missiles[i].width, missiles[i].height);
				playerShape = new Rectangle2D.Double(player.posX, player.posY, player.width, player.height);
				if(missileShape.getBounds().intersects(playerShape.getBounds())){
					missiles[i] = null;
					player.score++;
					player.ammo++;
				}
			}
		}
		
		// Checks whether a missile has reached the end of the screen
		for(int i = 0; i < missiles.length; i++){
			if(missiles[i] != null){
				if(missiles[i].posY > this.getHeight()){
					missiles[i] = null;
					player.lives--;
				}
			}
		}
		
		// Checks whether a player's laser has hit a Munchkin
		for(int i = 0; i < lasers.length; i++){
			if(lasers[i] != null){
				for(int j = 0; j < munchkins.length; j++){
					if(munchkins[j] != null){
						laserShape = new Ellipse2D.Double(lasers[i].posX, lasers[i].posY, lasers[i].width, lasers[i].height);
						enemyShape = new Rectangle2D.Double(munchkins[j].posX, munchkins[j].posY, munchkins[j].image.getWidth(), munchkins[j].image.getHeight());
						if(laserShape.getBounds().intersects(enemyShape.getBounds())){
							lasers[i] = null;
							munchkins[j] = null;
							player.score += 2;
							player.ammo += 2;
							break;
						}
					}
				}
			}
		}
		
		// Checks whether a player's laser has hit a UFO
		for(int i = 0; i < lasers.length; i++){
			if(lasers[i] != null){
				for(int j = 0; j < ufos.length; j++){
					if(ufos[j] != null){
						laserShape = new Ellipse2D.Double(lasers[i].posX, lasers[i].posY, lasers[i].width, lasers[i].height);
						enemyShape = new Rectangle2D.Double(ufos[j].posX, ufos[j].posY, ufos[j].image.getWidth(), ufos[j].image.getHeight());
						if(laserShape.getBounds().intersects(enemyShape.getBounds())){
							lasers[i] = null;
							ufos[j] = null;
							player.score += 2;
							player.ammo += 2;
							break;
						}
					}
				}
			}
		}
		
		// Checks whether a Munchkin's laser has hit the player
		for(Munchkin enemy : munchkins){
			if(enemy != null){
				lasers:
				for(int i = 0; i < enemy.lasers.length; i++){
					if(enemy.lasers[i] != null){
						laserShape = new Ellipse2D.Double(enemy.lasers[i].posX, enemy.lasers[i].posY, enemy.lasers[i].width, enemy.lasers[i].height);
						playerShape = new Rectangle2D.Double(player.posX, player.posY, player.width, player.height);
						if(laserShape.getBounds().intersects(playerShape.getBounds())){
							enemy.lasers[i] = null;
							player.lives--;
							continue lasers; // Could possibly be removed
						}
					}
				}
			}
		}
		
		// Checks whether a UFO's laser has hit the player
		for(UFO enemy : ufos){
			if(enemy != null){
				lasers:
				for(int i = 0; i < enemy.lasers.length; i++){
					if(enemy.lasers[i] != null){
						laserShape = new Ellipse2D.Double(enemy.lasers[i].posX, enemy.lasers[i].posY, enemy.lasers[i].width, enemy.lasers[i].height);
						playerShape = new Rectangle2D.Double(player.posX, player.posY, player.width, player.height);
						if(laserShape.getBounds().intersects(playerShape.getBounds())){
							enemy.lasers[i] = null;
							player.lives--;
							continue lasers; // Could possibly be removed
						}
					}
				}
			}
		}
		
		// Checks whether a player's laser has reached the end of the screen
		for(int i = 0; i < lasers.length; i++){
			
			if(lasers[i] != null){
				if(lasers[i].posY < 0 || lasers[i].posY > settings.screenHeight){
					lasers[i] = null;
					
				}
			}
			
		}
		
		// Checks whether a Munchkin's laser has reached the end of the screen
		for(Munchkin enemy : munchkins){
			if(enemy != null){
				for(int i = 0; i < enemy.lasers.length; i++){
					if(enemy.lasers[i] != null){
						if(enemy.lasers[i].posY < 0 || enemy.lasers[i].posY > settings.screenHeight){
							enemy.lasers[i] = null;
						}
					}
				}

			}
		}
		
		// Checks whether a UFO's laser has reached the end of the screen
		for(UFO enemy : ufos){
			if(enemy != null){
				for(int i = 0; i < enemy.lasers.length; i++){
					if(enemy.lasers[i] != null){
						if(enemy.lasers[i].posY < 0 || enemy.lasers[i].posY > settings.screenHeight){
							enemy.lasers[i] = null;
						}
					}
				}

			}
		}
		
	}