public void update(long dt,float dAngle,float ratioY){
  float d=dt * dAngle;
  isCalmedDown=true;
  for (  GLWave wave : waves) {
    wave.update(d);
    isCalmedDown&=wave.isCalmedDown();
  }
  usedBubbles.addAll(producedBubbles);
  producedBubbles.clear();
  Iterator<GLBubble> iterator=usedBubbles.iterator();
  while (iterator.hasNext()) {
    GLBubble bubble=iterator.next();
    bubble.update(dt,ratioY);
    if (bubble.isOffScreen()) {
      unusedBubbles.add(bubble);
      iterator.remove();
    }
  }
}

public void update ( long dt , float dAngle , float ratioY ) { float d = dt * dAngle ; isCalmedDown = true ; for ( GLWave wave : waves ) { wave . update ( d ) ; isCalmedDown &= wave . isCalmedDown ( ) ; } usedBubbles . addAll ( producedBubbles ) ; producedBubbles . clear ( ) ; Iterator < GLBubble > iterator = usedBubbles . iterator ( ) ; while ( iterator . hasNext ( ) ) { GLBubble bubble = iterator . next ( ) ; bubble . update ( dt , ratioY ) ; if ( bubble . isOffScreen ( ) ) { unusedBubbles . add ( bubble ) ; iterator . remove ( ) ; } } }
update waves and bubbles positions .
