浏览代码

fix area center of gravity

Juan Linietsky 10 年之前
父节点
当前提交
e9f94ce8d2
共有 2 个文件被更改,包括 2 次插入2 次删除
  1. 1 1
      servers/physics/body_sw.cpp
  2. 1 1
      servers/physics_2d/body_2d_sw.cpp

+ 1 - 1
servers/physics/body_sw.cpp

@@ -358,7 +358,7 @@ void BodySW::_compute_area_gravity(const AreaSW *p_area) {
 
 	if (p_area->is_gravity_point()) {
 
-		gravity = (p_area->get_gravity_vector() - get_transform().get_origin()).normalized() * p_area->get_gravity();
+		gravity = (p_area->get_transform().xform(p_area->get_gravity_vector()) - get_transform().get_origin()).normalized() * p_area->get_gravity();
 
 	} else {
 		gravity = p_area->get_gravity_vector() * p_area->get_gravity();

+ 1 - 1
servers/physics_2d/body_2d_sw.cpp

@@ -379,7 +379,7 @@ void Body2DSW::_compute_area_gravity(const Area2DSW *p_area) {
 
 	if (p_area->is_gravity_point()) {
 
-		gravity = (p_area->get_transform().get_origin()+p_area->get_gravity_vector() - get_transform().get_origin()).normalized() * p_area->get_gravity();
+		gravity = (p_area->get_transform().xform(p_area->get_gravity_vector()) - get_transform().get_origin()).normalized() * p_area->get_gravity();
 
 	} else {
 		gravity = p_area->get_gravity_vector() * p_area->get_gravity();