godot-box2d icon indicating copy to clipboard operation
godot-box2d copied to clipboard

Add support for build_mode = segments in CollisionPolygon2D

Open salvob41 opened this issue 10 months ago • 0 comments

Describe the bug

Setting build_mode = segments in CollisionPolygon2D does not change its behaviour, while setting up a CollisionShape2D with a ConcavePolygonShape2D inside works as expected. The two behaviours should be the same, as per this documentation page:

https://docs.godotengine.org/en/stable/classes/class_collisionpolygon2d.html#class-collisionpolygon2d-constant-build-segments

Using GodotPhysics2D as the physics engine does not show this bug. Box2D is able to work as expected with ConcavePolygonShape2D, so I suspect there's an issue in the addon.

To Reproduce Steps to reproduce the behavior:

  1. Create a StaticBody2D with a CollisionPolygon2D node inside
  2. Add points to the polygon, and have it surround a player-controlled RigidBody2D
  3. Set the build mode of the CollisionPolygon2D to "segments"
  4. Test the scene. The RigidBody2D is able to go outside the polygon's boundary (and it should not be)
  5. Try again by creating a StaticBody2D with a CollisionShape2D inside, with a ConcavePolygonShape2D
  6. Set up the shape's segments to surround the player body
  7. Test the scene. The RigidBody2D is now correctly confined within the boundary

Expected behavior CollisionPolygon2D with build_mode = segments should behave as ConcavePolygonShape2D

Project If applicable, add a reproducible project to help explain your problem.

Versions (please complete the following information):

  • OS: Linux
  • Godot v4.2
  • Godot Box2d v0.9.9

salvob41 avatar Mar 29 '24 21:03 salvob41