배경:
레트로 플랫 포머 리메이크 프로젝트에서 점프 곡선을 올바르게 얻는 데 문제가 있습니다. 원래 게임은 NES를위한 것이며, 플레이어의 속도는 정수의 바이트와 분수의 다른 두 부분으로 저장됩니다.
중력은 플레이어의 Y 속도에 0.25 / 프레임의 속도로 추가됩니다.
플레이어가 점프하면 Y 속도가 -4.64453125로 설정됩니다. 나머지 점프 커브는 중력에 맡겨져 있습니다.
플레이어가 상승함에 따라 그의 수직 속도는 0.25 / 프레임의 속도로 0으로 수렴합니다. 그러나 플레이어의 속도가 0보다 작은 값에 도달하면 속도는 다른 패턴에 따라 변경됩니다. 매 프레임마다 0.25 씩 꾸준히 감소하는 대신이 패턴을 따릅니다.
[1.75, -0.25, -0.25, -0.25, 1.75, -0.25, -0.25, -0.25, 1.75, ...]
정수 오버플로와 관련이있는 것으로 보입니다.
데이터:
다음은 원본의 데이터 덤프입니다. 속도의 표입니다.
Jump Curve
Y-Hi Y-Lo Decimal Change/Frame
4 165 4.64453125 ?
4 101 4.39453125 -0.25
4 37 4.14453125 -0.25
3 229 3.89453125 -0.25
3 165 3.64453125 -0.25
3 101 3.39453125 -0.25
3 37 3.14453125 -0.25
2 229 2.89453125 -0.25
2 165 2.64453125 -0.25
2 101 2.39453125 -0.25
2 37 2.14453125 -0.25
1 229 1.89453125 -0.25
1 165 1.64453125 -0.25
1 101 1.39453125 -0.25
1 37 1.14453125 -0.25
0 229 0.89453125 -0.25
0 165 0.64453125 -0.25
0 101 0.39453125 -0.25
0 37 0.14453125 -0.25
-1 229 -1.89453125 1.75
-1 165 -1.64453125 -0.25
-1 101 -1.39453125 -0.25
-1 37 -1.14453125 -0.25
-2 229 -2.89453125 1.75
-2 165 -2.64453125 -0.25
-2 101 -2.39453125 -0.25
-2 37 -2.14453125 -0.25
-3 229 -3.89453125 1.75
-3 165 -3.64453125 -0.25
-3 101 -3.39453125 -0.25
-3 37 -3.14453125 -0.25
-4 229 -4.89453125 1.75
-4 165 -4.64453125 -0.25
-4 101 -4.39453125 -0.25
-4 37 -4.14453125 -0.25
-5 229 -5.89453125 1.75
-5 165 -5.64453125 -0.25
-5 101 -5.39453125 -0.25
-5 37 -5.14453125 -0.25
-6 229 -6.89453125 1.75
문제:
내 게임에서는이 효과를 얻을 수 없었습니다. 속도가 0보다 작 으면 위에서 설명한 패턴이 아닌 정기적으로 0.25 씩 계속 감소합니다. 전체 및 분수 부분을 별도로 저장하는 대신 단일 부동으로 함께 저장합니다.
이 효과를 어떻게 얻을 수 있습니까?