public boolean updatePosition(float pf_width, float pf_height, Player player, Vector<Brick> bricks, Vector<BrickConfiguration> brickConfigurations, BreakoutCanvas canvas) {
		/*Update the shot's position*/
		x += xVel;//(speed * xDir);
		y += yVel;//(speed * yDir);
		
		int score_sum = 0;
		boolean bricksStillInPlay = false;
		
		/*Resolve any potential collision between the shot and the level's bricks*/
		for(Brick brick : bricks) {
			if(brick.getIsAlive()) {//Only check bricks that are alive
				score_sum += resolveCollision(brick);
				brick.updateBrickColor(brickConfigurations);
				bricksStillInPlay = true;
			}
		}
		
		/*If no bricks are still in play has the player completed the level*/
		if(!bricksStillInPlay) {
			player.setLevelCompleted(true);
		}
		
		/*Add the points gained from hitting bricks*/
		player.addPoints(score_sum);
		
		//The shot has hit something and should be removed
		if(!isAlive)
		{
			return true;
		}
		
		/*Check if the shot has moved outside the canvas*/
		return maintainBounderies(pf_width, pf_height);
	}