# How to achieve sprite reflection effect in libgdx

I am currently working on an open world game similar to Pokemon using libgdx. I am currently stuck on this effect that I really want to be done before moving to other features of my game. How can I achieve the following water reflection effect?

I also want it to shimmer like in this video:

"Pokémon Sapphire | Reflections in the water | Episode 4" - 3:38

You can use the method sprite2.setAlpha(float) to make your sprite slightly tinted and sprite2.setFlip(boolean x, boolean y) Set the sprite's flip state regardless of current condition thus making it look like a reflection
• Alpha level: the reflection on the water surface shouldn't be opaque, like on a perfectly clean mirror. You can use sprite.setAlpha(float a) with a value between 0.5 and 0.8 (in my opinion) to get a semi-transparent reflected image;
• Width scale: in the video you put a link to, the reflection is actually stretching horizontally slowly, over and over again. You can achieve this result updating your sprite with sprite.setScale(float scaleX, float scaleY), where scaleX is a value which changes, for example, between 0.9 and 1.1 over the time, whilst scaleY is equal to 1 because you don't want the height to change.
Alternatively to setScale(), here comes setSize(float width, float height) which may give you more precision about sprite transformation: if your sprite is 64 pixels wide, you may want its reflection on the water to vary between 60 and 68 pixels over the time; so, you can call sprite.setSize(width+widthDelta,height); making sure widthDelta value is updated with a number between -4 and 4.