Wiki
Fizyka gry Chrome Dino
Jak zaprojektowano wrażenia ze skoku T-Rexa

Obecna fizyka Chrome Dino znajduje się w modułach TypeScript Chromium. Skok zaczyna się od początkowej prędkości w górę, dostosowanej do aktualnej prędkości, a grawitacja zmienia tę prędkość przy każdej aktualizacji. Zwolnienie klawisza skoku po osiągnięciu skonfigurowanej minimalnej wysokości pozwala endJump ograniczyć prędkość w górę do prędkości opadania, co skutkuje krótszym łukiem. Strzałka w dół w powietrzu ustawia stan szybkiego opadania i mnoży pionowe przemieszczenie przez skonfigurowany współczynnik. Wykrywanie kolizji wykorzystuje kilka osiowo wyrównanych ramek dla biegnącego T-Rexa i każdej przeszkody, co dokładniej przybliża kształty sprite'ów niż jeden duży prostokąt. Jest to zwykła geometria kolizji wieloramkowej, a nie czas kojota. The Jumping Dino wykorzystuje własną fizykę mobilną i nie należy zakładać, że dzieli stałe Chromium.
Fizyka skoku w szczegółach
Normalna konfiguracja skoku wykorzystuje grawitację 0.6, minimalne i maksymalne wartości wysokości skoku 30, początkową prędkość skoku -10 i prędkość opadania -5. startJump odejmuje speed / 10 od prędkości początkowej. Zwolnienie klawisza skoku wywołuje endJump; po osiągnięciu minimalnej wysokości, ta metoda ogranicza wciąż rosnącą prędkość do -5, tak aby opadanie rozpoczęło się wcześniej. Szybkie opadanie zamiast tego ustawia prędkość skoku na 1 i mnoży pionowe przemieszczenie przez współczynnik szybkiego opadania wynoszący 3. Źródło nie podaje stałego procentowego zmniejszenia czasu lotu.
Wykrywanie kolizji i projekt hitboksów
Biegnący T-Rex używa sześciu ramek kolizji; kucanie używa jednej szerszej ramki. Mały kaktus, duży kaktus i pterodaktyl mają swoje własne ramki. Kod kolizji przesuwa te ramki o aktualne pozycje sprite'ów i sprawdza nakładanie się. Same ramki nie są mnożone przez wartość prędkości gry. Ruch wykorzystuje upływający czas klatki, a moduł stałych definiuje odniesienie 60 FPS dla obliczeń animacji i ruchu.
Postęp prędkości i jego wpływ na wrażenia
Tryb normalny zaczyna się od prędkości 6, dodaje 0.001 na aktywną aktualizację i osiąga limit 13. Wynik jest zaokrąglany z odległości pomnożonej przez 0.025. Przy nominalnym czasie 60 FPS, te stałe osiągają limit około 1660 punktów, a nie 700. Szybszy ruch przeszkód zmniejsza dostępny czas ekranowy, podczas gdy startJump również sprawia, że prędkość startowa staje się nieco bardziej ujemna wraz ze wzrostem prędkości. Dokładne okna reakcji zależą od szerokości widoku, szerokości przeszkody, losowej luki, aktualnej prędkości i czasu wejścia, więc źródło nie obsługuje jednej uniwersalnej wartości w milisekundach.

