Pobierz z App StorePobierz z Google Play

Wiki

Kod źródłowy Chrome Dino

Wewnątrz otwartego kodu źródłowego gry T-Rex Runner od Google

Zaktualizowano WikiPierwsza publikacja
Kod źródłowy Chrome Dino
Rozgrywka w The Jumping DinoiOS + Android

Gra Chrome Dino jest częścią projektu open-source Chromium, więc jej obecna implementacja może być bezpośrednio sprawdzona w repozytorium źródłowym Google. Od lipca 2026 roku gra znajduje się w components/neterror/resources/dino_game/. Główny kontroler Runner znajduje się w offline.ts, podczas gdy punktacja, T-Rex, przeszkody, horyzont, sprite'y, stan gry i dźwięk są podzielone na ukierunkowane moduły TypeScript. Starsze wyjaśnienia, które opisują jeden aktualny plik offline.js, odnoszą się do poprzedniej architektury Chromium. Gra nadal używa HTML Canvas API i prymitywów czasowych przeglądarki, a nie silnika gry innej firmy. Runner koordynuje dane wejściowe i stan, Trex odpowiada za zachowanie skakania i kucania, Obstacle i Horizon zarządzają ruchomym światem, a DistanceMeter konwertuje odległość na wyświetlany wynik. Obecny distance_meter.ts również dowodzi, że wyświetlacz rozszerza się z pięciu do sześciu cyfr po 99 999. Dla programistów kod jest użytecznym, kompaktowym przykładem modułowego TypeScript, rozgrywki opartej na konfiguracji, wsparcia dostępności, animacji sprite'ów, wykrywania kolizji i pętli requestAnimationFrame.

01

Kluczowe klasy i architektura

Obecny kod źródłowy Chrome Dino jest zorganizowany w ukierunkowane moduły: - offline.ts / Runner: koordynuje pętlę gry, dane wejściowe, prędkość, stan punktacji, zachowanie pauzy/restartu i dostępność.

  • trex.ts: zarządza fizyką skoków, kucaniem, stanami animacji i polami kolizji.
  • obstacle.ts: definiuje ruch kaktusów i pterodaktyli oraz zachowanie ich pojawiania się.
  • horizon.ts i powiązane pliki: rysują ziemię, chmury, księżyc, tryb nocny i przewijający się świat.
  • distance_meter.ts: konwertuje odległość na wynik, rysuje najlepszy wynik, miga osiągnięciami i rozszerza wyświetlacz po początkowych pięciu cyfrach.
  • game_config.ts i pliki definicji sprite'ów: utrzymują prędkości, luki, tryby i pozycje zasobów oparte na konfiguracji. Ten modułowy układ TypeScript zastąpił starszą, jednoplikową strukturę JavaScript.
02

Jak działa pętla gry

Gra wykorzystuje standardową pętlę requestAnimationFrame. W każdej klatce metoda Runner.update: 1. Oblicza czas, który upłynął od ostatniej klatki 2. Aktualizuje prędkość gry na podstawie przebytej odległości 3. Przesuwa wszystkie przeszkody z ich aktualną prędkością 4. Sprawdza kolizje między T-Rexem a dowolną przeszkodą 5. Aktualizuje wynik i miernik odległości 6. Czyści płótno i ponownie rysuje wszystkie elementy 7. Planuje następną klatkę Jeśli zostanie wykryta kolizja, gra przechodzi w stan 'rozbicia', odtwarza krótką animację i czeka, aż gracz naciśnie spację, aby ponownie uruchomić. Cała gra działa z docelową prędkością 60 klatek na sekundę, z kompensacją czasu delta, aby zapewnić spójną fizykę zarówno na szybkich, jak i wolnych wyświetlaczach.

03

Uczenie się z bazy kodu

Obecne źródło demonstruje kilka użytecznych pomysłów inżynierskich w prawdziwej funkcji produkcyjnej: - Modułowa odpowiedzialność: runner, postać, świat, wynik, stan i zasoby to oddzielne moduły TypeScript.

  • Wejście sterowane zdarzeniami: zdarzenia klawiatury, wskaźnika, dotyku, widoczności, fokusu i gamepada zasilają ten sam stan gry.
  • Jawny stan: zachowanie oczekiwania, biegu, skakania, kucania, pauzy i rozbicia jest reprezentowane bezpośrednio.
  • Rozgrywka oparta na konfiguracji: przyspieszenie, maksymalna prędkość, luki w przeszkodach, współczynniki mobilne i alternatywne tryby są oparte na danych.
  • Dostępność: komunikaty regionów na żywo, etykiety, kontrolki spowolnienia i alternatywne metody wprowadzania są częścią obecnej implementacji.
  • Synchronizacja uwzględniająca liczbę klatek na sekundę: requestAnimationFrame i upływający czas utrzymują spójny ruch. Czytaj aktualne pliki Chromium, a nie skopiowane samouczki zbudowane wokół wycofanego układu offline.js.
Tematychrome dinokod źródłowyjavascriptchromiumopen source

Graj podczas czytania

Zagraj teraz lub pobierz pełną grę

Zagraj w przeglądarkową grę w dinozaura lub pobierz aplikację mobilną z kampanią, trybem Nieskończoności, postępem dinozaurów i wyścigami duchów AI.

Źródła i referencje

Ostatnia weryfikacja:

AWANSUJ

Kochasz klasykę? Poznaj ewolucję.

The Jumping Dino bierze wszystko, co kochasz w grze w dinozaura z Chrome i zamienia to w pełną przygodę.

Kampania + Nieskończoność + Tryb wieloosobowy
Ratuj jaja w 5 erach
Wykluwaj dinozaury, buduj Sanktuarium
iOS i Android; 2 tryby offline

3M+

Pobrania

4.3★

Ocena w Google Play

9.28K

Recenzje

Kochasz klasykę? Poznaj ewolucję.
Pobierz z App StorePobierz z Google Play

Odpowiedzi

Często zadawane pytania

Tak. Chrome Dino jest częścią projektu open-source Chromium. Obecna implementacja znajduje się w components/neterror/resources/dino_game, z głównym modułem uruchamiającym w offline.ts i oddzielnymi modułami TypeScript dla miernika odległości, T-Rexa, przeszkód, horyzontu i innych systemów.

Obecna implementacja Chromium jest napisana w TypeScript i skompilowana dla Chrome. Wykorzystuje API przeglądarki i HTML Canvas, a nie silnik gry innej firmy. Starsze wersje Chromium utrzymywały większość logiki w jednym pliku offline.js.

Możesz przeglądać i tworzyć forki kodu źródłowego Chromium na podstawie jego licencji open-source. Nie możesz modyfikować wersji działającej w Twojej przeglądarce Chrome bez zbudowania niestandardowej wersji Chromium. Możesz jednak manipulować działającą grą za pomocą konsoli JavaScript w Chrome.

Obecny kod jest kompaktowym przykładem modułowego TypeScript, animacji sprite'ów Canvas, wykrywania kolizji za pomocą bounding-box, rozgrywki opartej na konfiguracji, haków dostępności i synchronizacji requestAnimationFrame bez silnika gry innej firmy.

Kontynuuj odkrywanie

Powiązane strony