Завантажити в App StoreЗавантажити в Google Play

Вікі

Вихідний код Chrome Dino

Всередині відкритого коду, що стоїть за T-Rex Runner від Google

Оновлено ВікіВперше опубліковано
Вихідний код Chrome Dino
Ігровий процес The Jumping DinoiOS + Android

Гра Chrome Dino є частиною відкритого проекту Chromium, тому її поточну реалізацію можна безпосередньо перевірити у сховищі вихідного коду Google. Станом на липень 2026 року гра знаходиться в components/neterror/resources/dino_game/. Основний контролер Runner знаходиться в offline.ts, тоді як підрахунок очок, T-Rex, перешкоди, горизонт, спрайти, стан гри та звук розділені на сфокусовані модулі TypeScript. Старіші пояснення, які описують один поточний файл offline.js, стосуються попередньої архітектури Chromium. Гра все ще використовує HTML Canvas API та примітиви синхронізації браузера, а не сторонній ігровий рушій. Runner координує введення та стан, Trex відповідає за поведінку стрибків та присідань, Obstacle та Horizon керують рухомим світом, а DistanceMeter перетворює відстань у відображуваний рахунок. Поточний distance_meter.ts також доводить, що відображення розширюється з п'яти до шести цифр після 99 999. Для розробників код є корисним компактним прикладом модульного TypeScript, ігрового процесу, керованого конфігурацією, підтримки доступності, анімації спрайтів, виявлення зіткнень та циклу requestAnimationFrame.

01

Ключові класи та архітектура

Поточний вихідний код Chrome Dino організований у сфокусовані модулі: - offline.ts / Runner: координує ігровий цикл, введення, швидкість, стан рахунку, поведінку паузи/перезапуску та доступність.

  • trex.ts: керує фізикою стрибків, присіданнями, станами анімації та колізійними рамками.
  • obstacle.ts: визначає рух та появу кактусів та птерозаврів.
  • horizon.ts та пов'язані файли: малюють землю, хмари, місяць, нічний режим та прокручуваний світ.
  • distance_meter.ts: перетворює відстань на рахунок, малює високий бал, блимає досягненнями та розширює відображення після початкових п'яти цифр.
  • game_config.ts та файли визначення спрайтів: забезпечують керування швидкістю, проміжками, режимами та позиціями активів за допомогою конфігурації. Цей модульний макет TypeScript замінив стару однофайлову структуру JavaScript.
02

Як працює ігровий цикл

Гра використовує стандартний цикл requestAnimationFrame. Кожен кадр метод Runner.update: 1. Обчислює час, що минув з останнього кадру 2. Оновлює швидкість гри на основі пройденої відстані 3. Переміщує всі перешкоди з їх поточною швидкістю 4. Перевіряє зіткнення між T-Rex та будь-якою перешкодою 5. Оновлює рахунок та вимірювач відстані 6. Очищає полотно та перемальовує всі елементи 7. Планує наступний кадр Якщо виявлено зіткнення, гра переходить у стан «розбито», відтворює коротку анімацію та чекає, поки гравець натисне пробіл для перезапуску. Вся гра працює з цільовою частотою 60 кадрів на секунду, з компенсацією дельта-часу для забезпечення послідовної фізики як на швидких, так і на повільних дисплеях.

03

Навчання з кодової бази

Поточний вихідний код демонструє кілька корисних інженерних ідей у реальній виробничій функції: - Модульна відповідальність: "бігун", персонаж, світ, рахунок, стан та активи є окремими модулями TypeScript.

  • Введення, кероване подіями: події клавіатури, вказівника, дотику, видимості, фокусу та геймпада живлять один і той же стан гри.
  • Явний стан: поведінка очікування, бігу, стрибків, присідань, паузи та зіткнення представлена безпосередньо.
  • Ігровий процес, керований конфігурацією: прискорення, максимальна швидкість, проміжки між перешкодами, мобільні коефіцієнти та альтернативні режими є керованими даними.
  • Доступність: повідомлення в реальному часі, мітки, елементи керування уповільненням та альтернативні вводи є частиною поточної реалізації.
  • Синхронізація з урахуванням частоти кадрів: requestAnimationFrame та час, що минув, забезпечують послідовний рух. Читайте поточні файли Chromium, а не скопійовані посібники, побудовані на застарілому макеті offline.js.
Темиchrome dinoвихідний кодjavascriptchromiumвідкритий код

Грайте під час читання

Грайте зараз або отримайте повну гру

Грайте в браузерний раннер або отримайте мобільний додаток з кампанією, нескінченним режимом, прогресом динозаврів та перегонами з привидами ШІ.

Джерела та посилання

Остання перевірка:

ПІДВИЩЕННЯ РІВНЯ

Любите класику? Зустрічайте еволюцію.

The Jumping Dino бере все, що ви любите в грі з динозавриком Chrome, і перетворює це на повноцінну пригоду.

Кампанія + Нескінченний + Мультиплеєр
Рятуйте яйця протягом 5 ер
Вилуплюйте динозаврів, будуйте Святилище
iOS та Android; 2 офлайн-режими

3M+

Завантаження

4.3★

Рейтинг Google Play

9.28K

Відгуки

Любите класику? Зустрічайте еволюцію.
Завантажити в App StoreЗавантажити в Google Play

Відповіді

Часті запитання

Так. Chrome Dino є частиною відкритого проекту Chromium. Поточна реалізація знаходиться в components/neterror/resources/dino_game, з основним "бігуном" в offline.ts та окремими модулями TypeScript для вимірювача відстані, T-Rex, перешкод, горизонту та інших систем.

Поточна реалізація Chromium написана на TypeScript та скомпільована для Chrome. Вона використовує API браузера та HTML Canvas, а не сторонній ігровий рушій. Старіші версії Chromium зберігали більшу частину логіки в одному файлі offline.js.

Ви можете переглядати та форкувати вихідний код Chromium за його ліцензією з відкритим кодом. Ви не можете змінювати версію, що працює у вашому браузері Chrome, без створення власної версії Chromium. Однак ви можете маніпулювати запущеною грою через консоль JavaScript Chrome.

Поточний код є компактним прикладом модульного TypeScript, анімації спрайтів Canvas, виявлення зіткнень за допомогою обмежувальних рамок, ігрового процесу, керованого конфігурацією, гачків доступності та синхронізації requestAnimationFrame без стороннього ігрового рушія.

Продовжуйте досліджувати

Схожі сторінки