I've been trying to develop a pinball-like game prototype, using the TileMap system as a way to draft out boards and I've come into an issue whereby when the pinball moves too fast and collides with the TileMap walls, it will sometimes register multiple hits from more than one tile and at different angles.
As the main wall tiles in my kit have the collision shape of a square, when the pinball moves even moderately fast and manages to hit near or on the border between two tiles, it's getting hit normals from the side and corner of one of the collision squares when I just want it to only ever hit the exposed surface of the wall.
I have tried...
- Increasing the Physics Fixed Timer (helped moderately by making it 120, but it doesn't seem to get much more reliable at a much higher timer)
- Using the Segment CollisionShape. Instead of the above the pinball just freaks out.
- Tweaking the Solver Bias
- Trying to use One-Way Collision
- Use Continuous Collision Detection, both types
- Changing the shape of the CollisionPolygon to prevent the pinball from reflecting off the side of the tile when not exposed - but as it still hits the corner of the adjacent tile this made no difference
Is there any way I can automatically merge the surfaces to prevent this instance, or would a custom collision solver be able to help this in any way that makes the result 100% reliable? I can hand-craft the collision bounds if need be, but especially for having to trace over curved walls accurately id rather a different solution.