시간 간격과 조작감

같은 점프가 다른 높이에 닿는 이유

물리 간격, 적분 순서, 버튼 해제, 표시 속도를 각각 바꿔 궤적이 달라지는 원인을 분리합니다.

선택 모델 · 예측 최고점 / 착지
일정 중력 기준 · v₀=10, g=202.500 m / 1.000 s

Space를 눌러 직접 점프, 놓아서 높이 조절 · ← → / 화면 버튼을 누르고 이동 · ‘예시 점프’는 설정한 시각에 자동 해제

같은 점프가 다른 높이에 닿는 이유

문제 · 화면 빈도와 물리 규칙을 섞으면 원인을 놓칩니다

매 화면마다 같은 거리를 더하면 FPS에 따라 속도가 달라집니다. 시간을 곱해도 중력과 충돌의 이산 계산 오차는 남습니다. 여기서는 물리 틱과 표시 프레임을 독립적으로 조절합니다.

원인 · 새 속도를 먼저 쓰는지 확인합니다

초기 속도 10m/s, 중력 −20m/s², 한 틱 0.1s에서 정확 위치는 0.9m, 명시적 Euler는 1.0m, 반암시적 Euler는 0.8m입니다. 점선은 일정 중력 해석해이며, 실선은 선택한 적분과 해제·중력 규칙으로 계산한 궤적입니다.

해결 · 수치 오차와 조작 설계를 따로 조절합니다

물리 간격을 줄이면 적분 오차가 줄고 계산 횟수가 늘어납니다. 하강 중력 배수와 상승 중 버튼 해제는 의도적으로 궤적을 바꿉니다. 해제는 상승 속도만 제한하며 하강 속도는 건드리지 않습니다. 수평 이동은 입력 가속, 반대 입력 제동, 공중 제어, 무입력 감속을 사용합니다.

대가 · 부드러운 표시는 정확한 충돌과 다릅니다

보간은 이전·현재 물리 상태를 섞어 표시하며 최대 한 틱 지연이 있습니다. 표시 FPS는 수치 결과를 바꾸지 않습니다. 여기서는 평평한 바닥에 착지하고 틱 끝에서 높이를 0으로 제한하므로 착지 시각은 양자화됩니다. 가변 중력의 전환·해제도 틱 경계에서 일어납니다. 원작 마리오의 상수를 재현하지 않았습니다.

Godot · 물리 틱과 표시 보간Nintendo 설명서 · 짧게 누르기와 길게 누르기