How to Water Reflection in tile maps?

Regarding water reflection in tile maps: The default reflection in GDevelop flips the object upside down based on its center point to display the ripples. Because of this, the reflected image doesn’t look right depending on the object’s height.

What I want to achieve is to make the reflection visible only within a specific object’s hitbox or a defined area (like a water tile). I’ve tried using the community extension ‘Reflection’ behavior, but I couldn’t find a clear solution for this.

Is there a technique or workaround to apply a reflection effect strictly within a certain area?

Hello! you are bringning up two problems.

1: objects’ centers and origin points can be manually adjusted. this should probably solve your first problem, unless the problem isn’t about center points.

2: any object can be masked using the mask extension

Here is a discussion on exactly the interaction between the two extensions (reflection and mask). read it carefully

message me if you have more questions. though… i never used reflection yet

Is there any way to flip the camera like in Unity and apply a filter?https://www.youtube.com/watch?v=ym1K3of3pys

you can also explain what you want. or at least give us the two key moments (in minutes an seconds) that shows what you are talking about.

we are not going to watch a 25 minute video on a thing that we personally don’t need

8: 30, captured a view of the top of the object from the camera’s perspective, placed it on the object, reduced its height, flipped it horizontally, and then added a rippling animation texture or effect. (15 min)

I played around with the concept and I used a simple sprite with 2 points below it. It was roughly the height and width of the reflection.

I masked the reflection not the tilemap.

I used 2 points to find the tiles below the player because they could be between 2 tiles.

These are my events. I had the tilemap snapped to the scene using a 64x64 grid and the tiles were also 64x64.

One point sets the position while the other calculates the width. It would be either 1 or 2 tiles wide.

It still needs events to enable/disable the reflection and removing the mask and the mask object.

Another approach would be to use either seperate sprites or another tilemap in a layered approach. Not necessarily different layers but different Z-orders.

The tilemap could be 0. The reflection 1. And then add blocks on each side of the water as 2. The player would be say 3.

That way the player would always be on top but the reflection would be above the water but obscured behind the fake tiles or objects.

My other approach seems better. It’s more dynamic unless you created the fake blocks through events instead of manually.

There seems like there should be an easier way.