public void update(Hero h, float elapsed)
{
//set initial positions
arrow.setXCenter(h.getXCenter());
arrow.setYCenter(h.getYCenter() + ARROW_Y_OFFSET);
negativeBar.setXCenter(h.getXCenter());
negativeBar.setYCenter(h.getYCenter() + BAR_Y_OFFSET);
positiveBar.setXCenter(h.getXCenter());
positiveBar.setYCenter(h.getYCenter() + BAR_Y_OFFSET);
//update moving arrow
//moves sinusoidally
arrowTimer += elapsed;
displacement = (int)(NEGATIVE_WIDTH / 2 * Math.Sin(arrowTimer * speedFactor + randomOffset));
arrow.setX(arrow.getX() + displacement);
}