Arka fon:
Retro bir platformcu yeniden yapım projem için atlama eğrisini düzeltmekte sorun yaşıyorum. Orijinal oyun NES içindir ve oyuncunun hızı iki ayrı parçada saklanır: bir tam sayı için bir bayt ve bir de kesirli kısım için.
Yerçekimi, oyuncunun Y hızına 0.25 / kare hızında eklenir.
Oyuncu zıpladığında, Y hızı -4.64453125 olarak ayarlanır. Atlama eğrisinin geri kalanı yer çekimine bırakılmıştır.
Oyuncu yükseldikçe dikey hızı 0,25 / kare hızında 0'a yaklaşır. Ancak oyuncunun hızı sıfırdan küçük bir değere ulaştığında, hız farklı bir paternin ardından değişir. Her kareyi sürekli olarak 0,25 oranında azaltmak yerine, bu kalıbı izler:
[1.75, -0.25, -0.25, -0.25, 1.75, -0.25, -0.25, -0.25, 1.75, ...]
Tamsayı taşmasıyla bir ilgisi var gibi görünüyor.
Veri:
İşte orijinalden bir veri dökümü. Bu bir hız tablosu.
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
Sorun:
Oyunumda bu etkiyi başaramadım. Hız sıfırdan düşük olduğunda, yukarıda açıklanan model yerine düzenli olarak 0,25 azalmaya devam eder. Bütün ve kesirli parçaları ayrı ayrı saklamak yerine, onları tek bir şamandıra içinde saklıyorum.
Bu etki nasıl elde edilebilir?