2017-01-06 4 views
0

"장애물"을 corona/box2d에서 옮기는 적절한 방법을 이해하려고합니다. 운동이 결정적이며 물리학 엔진과 단계적이되도록 내 코드를 작성하는 방법을 알고 싶습니다. 이것이 가능한가?"장애물"개체를 이동하는 방법. 코로나 SDK 물리학 Box2D. 물리학 업데이트?

나는 물리학 업데이트 (FixedUpdate)가 화합을 잘 알고 있어요. 모든 물리 단계에서 실행할 코드를 추가 할 수 있습니다. 이것은 물리학을 결정 론적으로 유지하고, 프레임과 시스템 시간을 독립적으로 유지합니다. 위아래의 크기 확장 대상을, 앞뒤로 움직이는 플랫폼을 확인하십시오

예를 들어, 내 게임에서 내가 좋아하는 일을하고 싶다. 나는 여전히 물리학이 제대로 작동하고 내 게임의 공을 예를 들어 이들로부터 튀어 나오게하고 싶습니다. 경우에 따라 kinematic or dynamic bodies 중 하나를 사용해야한다고 생각합니다.

나는 주위를 검색 한 정기적으로 이러한 개체를 조작하는 방법은 사용하는 것입니다

  • timer.performWithDelay. 하지만이 문서에 언급 된 문제가 "시스템 시간에 실행 타이머. 응용 프로그램이 일시 중단 된 경우, 타이머를 실행하면 자동으로되지 않습니다 일시 정지"enterFrame 이벤트 듣기
  • . 그러나 프레임 속도가 떨어지면 객체가 충분히 이동하지 않는 경우에도 이와 비슷한 문제가 발생합니다. 델타 시간을 사용하여이 문제를 처리 할 수 ​​있지만 결정적인 문제가 있습니다 (지연 시간이 너무 길면 개체를 너무 많이 움직입니다).
  • transition.to. 나는 이것이 timer.performWithDelay로 구현되었고 같은 문제를 가지고 있다고 생각한다.

나는 이들의 결정적 행동 것이라고 생각하지 않습니다. 어떤 제안? 도와 주셔서 감사합니다.

+0

다른 방법들도 모르겠다. "타이머가 시스템 시간에 실행됩니까? 앱이 일시 중지되면 타이머가 자동으로 일시 중지되지 않습니다." 응용 프로그램이 일시 중지되면이를 감지 할 수 있습니다. 자세한 내용 [자습서 : Corona 시스템 이벤트 처리] (https://coronalabs.com/blog/2012/05/15/handling-corona-system-events/). – ldurniat

+0

물리 모델처럼 보이는 모든 타이밍 부작용이 있습니다. 물리학적인 업데이트로 "잠금 단계"를 실행하는 방법이 정말로 필요하다고 생각합니다. "enterPhysicsStep"이벤트로이 – 1337Rooster

+0

을 해결할 수 있습니다. 디스플레이 그룹에서 모두 시도 했습니까? – Amir

답변

0

당신은 정말 사용해야합니다

object:setLinearVelocity(xVelocity, yVelocity) 

또는 대신 transition.to의

object:applyForce(xForce, yForce) 

.

관련 문제