Skip to content
This repository was archived by the owner on Jun 29, 2024. It is now read-only.
This repository was archived by the owner on Jun 29, 2024. It is now read-only.

Add support for build_mode = segments in CollisionPolygon2D #112

@salvob41

Description

@salvob41

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions