|
@@ -740,8 +740,8 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co
|
|
|
|
|
|
if (col_obj->get_type() == CollisionObject2DSW::TYPE_BODY) {
|
|
if (col_obj->get_type() == CollisionObject2DSW::TYPE_BODY) {
|
|
const Body2DSW *b = static_cast<const Body2DSW *>(col_obj);
|
|
const Body2DSW *b = static_cast<const Body2DSW *>(col_obj);
|
|
- if ((Physics2DServer::BODY_MODE_KINEMATIC || Physics2DServer::BODY_MODE_RIGID)) {
|
|
|
|
- //fix for moving platforms, margin is increased by how much it moved in the given direction
|
|
|
|
|
|
+ if (b->get_mode() == Physics2DServer::BODY_MODE_KINEMATIC || b->get_mode() == Physics2DServer::BODY_MODE_KINEMATIC) {
|
|
|
|
+ //fix for moving platforms (kinematic and dynamic), margin is increased by how much it moved in the given direction
|
|
Vector2 lv = b->get_linear_velocity();
|
|
Vector2 lv = b->get_linear_velocity();
|
|
//compute displacement from linear velocity
|
|
//compute displacement from linear velocity
|
|
Vector2 motion = lv * Physics2DDirectBodyStateSW::singleton->step;
|
|
Vector2 motion = lv * Physics2DDirectBodyStateSW::singleton->step;
|