2015-02-06 2 views
0

libGDX, 을 처음 사용했습니다. 플레이어가 버튼을 클릭하고 전체 게임 속도가 2 배 증가하는 내 게임에서 기능을 만들려고합니다. 나는 원하지 않습니다. 모든 게임 요소의 속도를 변경하려면 '게임 틱'속도를 제어하는 ​​글로벌 옵션을 찾고 있습니다.libGDX : 게임 범용 속도

+0

예를 들어 게임의 속도를 30fps에서 60fps로 변경한다는 것을 의미합니까? – huderlem

답변

2

적절한 프레임 독립적 인 응용 프로그램 (게임)을 보존하려면 두 프레임 사이의 시간을 사용해야합니다. Libgdx는 델타 또는 deltaTime이라는 float 인자를 Game 형식으로 사용하면 화면의 렌더링 방법에서 이미 이것을 제공합니다. 그렇지 않은 경우에도 Gdx.graphics.getDeltaTime()을 사용하여 가져올 수 있습니다.

이미 수행 한 경우 (해야 함!) 게임 업데이트 전에 2를 곱하면됩니다.

0

delta에 2를 곱한 (또는 필요한 요소) 경우 Lestat와 동의하십시오. 그래픽을 그리는 코드에서 (오브젝트 위치, 충돌 및 물건)을 계산하는 고유 한 코드에 제안을 추가하기 만하면됩니다. 그리고 델타를 계산할 때 그 값에 따라 계산 코드가 실행되어야하는 횟수를 계산하고 여러 번 실행하십시오. 그리고 그 후에 그림을 그리십시오. 요점은, 시간을 빠르게하면 (또는 일부 장치에서 느린 FPS를 사용하는 경우) 몇 가지 중요한 시간 프레임을 놓칠 수 있다는 것입니다. 나는. 당신은 총알이 프레임 당 5px를 가지고 있습니다. 그리고 당신은 당신의 시간 (또는 프레임 속도 방울)의 차이를 2 프레임 (및 2 계산)의 차이가 너무 클 수 있으며, 델타 매개 변수로 총알 속도를 곱하면 이동 단계가 너무 길어 지므로 총알이 일부 피할 수 있습니다 (적중) 탐지 및 적중이없이 적을 통과합니다. 따라서 주요 아이디어는 더 작은 단계 ("게임 시계")로 계산을 반복하고 가능한 한 많은 액션을 그리지 않는 것입니다.