public void update(int delta) {
		timeSinceLastUpdate += delta;

		if (state == STATE_CLOSED) {
			state = STATE_DESTROYING;
		} else if( state == STATE_DESTROYING) {
			if (timeSinceLastUpdate > 1000) {
				state = STATE_DESTROY;
			}
		} else if (state == STATE_CLOSING) {

			while (timeSinceLastUpdate > fillTime) {
				state_closing++;
				timeSinceLastUpdate -= fillTime;
				fillTime *= 0.95;
				
				if(null != pointFix) {
					pointFix.play((float)(1 + (state_closing / (float)max ) * 3 ), 1.0f);
				}
			}
			if (state_closing > points.size()) {
				state = STATE_CLOSED;
				shape.setClosed(true);
				timeSinceLastUpdate = 0;
			}
		} else {

			if (max == points.size() && state != STATE_DESTROY) {
				state = STATE_CLOSING;
				timeSinceLastUpdate = 0;
				fillTime= 250;
			}
		}
	}