public void generateWave() {
        int numStars,starPosX=0,starPosY=0,starWidth,starHeight,starVelocity, starHgap;
        int r,g,b;
        Color starColor;

        //generate num of stars
        numStars = MIN_NUM_STARS + (int) (Math.random()*(MAX_NUM_STARS-MIN_NUM_STARS));

        //generate stars wave
        for (int i=0; i<numStars; i++) {

            //generate star width
            starWidth = MIN_STAR_WIDTH + (int) (Math.random()*(MAX_STAR_WIDTH-MIN_STAR_WIDTH));
            //star is circle, height=width
            starHeight=starWidth;

            //generate color
            r = 100 + (int) (Math.random()*(255-100));
            g = 100 + (int) (Math.random()*(255-100));
            b = 100 + (int) (Math.random()*(255-100));
            starColor = new Color(r,g,b);

            //set star Hgap
            starHgap = (int) (Game.SCREEN_DIMENSION.getWidth()-numStars*starWidth)/(numStars+1);

            //set star pos Y
            starPosY=-starHeight;

            //set star pos X
            if (i!=0) starPosX=waveStars.get(i-1).getPosX() + waveStars.get(i-1).getWidth();

            //posX += randomly to starHgap
            starPosX+=starHgap;

            if (i==0) starPosX=0; //remove star Hgap left

            //set velocity
            starVelocity = (MAX_STAR_WIDTH + 1 - starWidth);

            //add star. @Param starPosX + random value for remove right star hgap
            waveStars.add(new Star(starPosX+(int)(Math.random()*starHgap), starPosY, starWidth, starHeight, starColor, starVelocity));
        }

        /* reassemble array with stars. (solve bug with line stars) */

        //how much stars to remove?
        int starsForRemove = (int) (Math.random()*waveStars.size()/2);


        while (starsForRemove!=0) {
            waveStars.remove((int)(Math.random()*waveStars.size())); //remove random star for array
            starsForRemove--;
        }
    };