2012-11-03 4 views
1

그 시간 단계가 올바른 속도로 게임을 실행하는 데 필요하다고 가정하면 빠른 하드웨어는 30 또는 60fps로 속도를 조정합니다. 그렇지 않으면 게임이 하드웨어가 처리 할 수 ​​있습니다. 이제, 내 게임은 PC에서 예상대로 실행되지만 장치 (갤럭시 에이스)에서 실행되면 몸이 매우 느리게 움직이며 심지어 Body.AppliLinearImpulse 또는 AppliForce의 양이든간에 초과 할 수없는 최대 속도가 있습니다. 또한 setLinearVelocity를 매우 높은 수로 변경했으며 항상 같은 속도입니다. 는 libgdx box2d에 관한 버그 일 수 있습니까? 또는 내 은하 ace android의 버그 2.3Box2d libgdx 매우 느림 장치

+0

여기에는 몇 가지 이유가있을 수 있습니다. 인쇄하여 fps를 확인하십시오. fps가 낮 으면 문제는 코드 또는 리소스에 있습니다. 그렇지 않으면 fps가 좋으면 문제는 당신의 "세계"에서 어떻게 당신이 세계에 전화하는 것입니까? 단계 (...)? 나는 libgdx를 사용하는 나 자신의 게임으로 Galaxy Ace를 테스트했지만 아무런 문제가 없었다. – Aliaaa

+0

나는 정말로 그 문제가 뭔지 모른다. 나는 세계에서 1/60에서 정수까지 모든 값을 시도해 왔으며, fps는 정상, 30 또는 60이며, 문제는 "World"가 계속 유지됩니다. 또한 예제를 다운로드했습니다. 그물에서, 그리고 장치에서 실행, 그리고 같은 일이 :/그리고 PC에서 잘 실행, 지정된 값을 사용하여 .AppliForce. 어쨌든, 뮤즈 조인트 (MuseJoint)로 원했던 것을 발견했습니다. – user1795881

답변

1

아마도 픽셀 값과 동일한 크기로 전달되는 동안 Box2D 본문을 시뮬레이션하고있을 것입니다. 그러나 Box2D는 미터 단위로 실행되므로 크기가 300 미터 인 몸체를 만들면 전체 시뮬레이션에 낮은 천장이 발생합니다.

임의의 비율 (1m == 64px)을 사용하고 Box2D 시스템을 축소하는 것이 좋습니다. px에서 변환 된 미터 값을 사용하여 바디를 초기화하고 조작합니다.

이렇게하면 더 넓은 범위의 동작과 높은 천장 속도를 허용합니다. 너와 똑같은 문제가 있었는데 그걸 알아 내는데 약간 시간이 걸렸다.