나는 box2d로 안드로이드 게임을 개발 중이며 물리학을 발전시키기 위해 고정 타임 스텝 시스템을 사용합니다.위치 보간이 제대로 작동하지 않습니다.
그러나이 시스템을 사용할 때 box2d 위치가 보간되어야합니다. 나는 this article 을 읽고 기사의 것과 매우 유사한 보간 방법을 구현했습니다.
이 방법은 컴퓨터에서 멋지게 작동하지만 내 전화기에서는 개체의 위치가 매우 불안정합니다. 물론 PC와 휴대 전화간에 큰 프레임 속도 차이가 있지만이 알고리즘이 신경 쓰지 않아야한다고 생각합니다. 내 게임이처럼 행동하는 이유
이void PhysicsSystem::smoothStates_()
{
const float oneMinusRatio = 1.f - fixedTimestepAccumulatorRatio_;
for (b2Body * b = world_->GetBodyList(); b != NULL; b = b->GetNext())
{
if (b->GetType() == b2_staticBody)
{
continue;
}
PhysicsComponent & c = PhysicsComponent::b2BodyToPhysicsComponent (* b);
c.smoothedPosition_ =
fixedTimestepAccumulatorRatio_ * b->GetPosition() +
oneMinusRatio * c.previousPosition_;
c.smoothedAngle_ =
fixedTimestepAccumulatorRatio_ * b->GetAngle() +
oneMinusRatio * c.previousAngle_;
}
}
사람이 알고 있나요 : 여기
당신이 글을보고 기분이 안되면 코드의 단지인가? 도움
감사합니다. 이미 해당 기사를 읽었으며 구현에 표시된 것과 동일한 시스템을 사용합니다. 나는 이것을 gamedev.stackexchange에 게시 할 것이다. – Jason