소스 검색

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();