コード例 #1
0
ファイル: physics_2d_server.cpp プロジェクト: ScyDev/godot
void Physics2DDirectBodyState::integrate_forces() {

	real_t step = get_step();
	Vector2 lv = get_linear_velocity();
	lv+=get_total_gravity() * step;

	real_t av = get_angular_velocity();

	float damp = 1.0 - step * get_total_linear_damp();

	if (damp<0) // reached zero in the given time
		damp=0;

	lv*=damp;

	damp = 1.0 - step * get_total_angular_damp();

	if (damp<0) // reached zero in the given time
		damp=0;

	av*=damp;

	set_linear_velocity(lv);
	set_angular_velocity(av);


}
コード例 #2
0
ファイル: physics_server.cpp プロジェクト: angjminer/godot
void PhysicsDirectBodyState::integrate_forces() {

	real_t step = get_step();
	Vector3 lv = get_linear_velocity();
	lv += get_total_gravity() * step;

	Vector3 av = get_angular_velocity();

	float linear_damp = 1.0 - step * get_total_linear_damp();

	if (linear_damp < 0) // reached zero in the given time
		linear_damp = 0;

	float angular_damp = 1.0 - step * get_total_angular_damp();

	if (angular_damp < 0) // reached zero in the given time
		angular_damp = 0;

	lv *= linear_damp;
	av *= angular_damp;

	set_linear_velocity(lv);
	set_angular_velocity(av);
}