Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗センターを守るあなたに、ひたすらセンターフライが飛んでくる。 100球すべて捕れるか!? を競うブラウザゲームです。
画面は 野手の背中越しにホームベースを見る3D視点(ホームラン競争をセンター側から見た構図)。 ナイター照明のスタジアムで、打者・投手・満員のスタンドを正面に見ながら打球を追います。
index.html をブラウザで開くだけで遊べます(Web 版はビルド不要)。Android / iOS アプリ版もあります(下記)。
docs/play-qr.png)Web 版のタイトル画面の左上には Google Play へのリンクを出しています(アプリ版では出しません)。
3D描画に同梱の three.js(vendor/three.min.js, MIT License)を使っています。
GitHub Pages などの静的ホスティングにそのまま置けます。
日本語と英語に対応しています。端末(ブラウザ)の言語が日本語なら日本語、それ以外は英語で表示し、タイトル画面左下のボタンで切り替えられます(設定は保存)。
文言は i18n.js にまとめています(構成は techgymjp/jet-fighter の js/i18n.js と同じ)。Android アプリは英語の端末ではアプリ名も「Center Fly」になります。
| 操作 | タッチ / マウス | キーボード |
|---|---|---|
| 移動 | 左下の 方角リング をタッチ(16方位に合わせる・中心からの距離で速さ) | 矢印キー / WASD / テンキー 1〜9(8方向) |
| ダッシュ | ダッシュボタン長押し(スタミナ消費) | Shift / Space / C |
| ジャンプ | ジャンプボタン | Z / J |
| ダイブ | ダイブボタン(移動方向へ飛び込む) | X / K |
| 一時停止 | — | P / Esc |
| 音のオン/オフ | 画面上部のスピーカーボタン | M |
| 着地点ナビのオン/オフ | 画面上部の「ナビ」ボタン | N |
移動方向は画面基準です(上 = 前進 = ホーム方向、下 = バック = フェンス方向)。 捕球は自動です。ボールが近づくと野手がグラブを差し出し、グラブの届く範囲(高さ・距離)にボールが入ると捕れます。 立っているときは高さ 2.3m・半径 1.1m、ジャンプ中は最高 3.8m まで、ダイブ中は飛び込んだ前方 2.5m 先まで届きます。
球数が進むほど難しい打球が増えます。
横画面で遊ぶゲームです。縦向きのときは「横向きにしてください」と表示して一時停止します。 対応ブラウザ(Android の Chrome など)ではスタート時に全画面・横向き固定になります。 画面は横長のスマホいっぱいに広がります(縦横比 4:3〜2.4:1)。ホーム画面に追加すると全画面で起動します。
着地点ナビ: 打球が上がると地面に黄色い輪が出ます。最初は大きく、落下が近づくほど落下点に絞られます。 フェンス際の打球は輪がオレンジになり「ジャンプ!」、走っても間に合わない打球には「ダイブ!」と表示します。
芝に落ちるボールの 影 が地面上の位置です。影の動きで落下点を読みましょう。
頭上を越える打球など画面外のボールは、画面端の矢印で方向と高さを表示します。
右上のミニマップ(画面と同じくホームが上)では打った直後から打球の方向が見えます。
フェンス際ではカメラがフェンスの外に出て、フェンスが半透明になります。
スコアは捕り方で加点(普通 100 / ランニング 150 / ジャンピング 250 / ダイビング 300 / ホームランキャッチ 500)+ 連続捕球ボーナス。
ベスト記録はブラウザに保存されます。
結果画面の「結果をシェア」から成績をシェアできます(対応スマホは成績画像つき。X・LINE・コピーにも対応)。 シェア文には紹介記事 https://techgym.jp/column/claude-code-game-center-fly/ と、ナビあり/なしが入ります。
音はすべて Web Audio API で合成しています(音声ファイルなし)。
Capacitor でゲームのファイルをアプリに同梱し、Android アプリにしています(オフラインで遊べます)。
構成は techgymjp/jet-fighter の docs/ANDROID_PORTING.md と同じです。
jp.techgym.centerflyビルドは GitHub Actions(.github/workflows/android.yml)で行います。
npm ci → npm run build(www/ に Web ファイルをコピーし、ads-config.js と build-info.js を生成)→ npx cap sync android → ./gradlew assembleDebugandroid-latest の center-fly.apk を差し替え(動作確認用・テスト広告)
https://github.com/techgymjp/center-fly/releases/tag/android-latest(QR コード: docs/apk-qr.png)https://github.com/techgymjp/center-fly/releases/latest/download/center-fly.apkANDROID_KEYSTORE_BASE64 / ANDROID_KEYSTORE_PASSWORD / ANDROID_KEY_ALIAS / ANDROID_KEY_PASSWORD)があれば、本番広告で署名付き AAB を作り Artifact に上げる手元で試すとき: npm install → npm run android:sync → npm run android:open(Android Studio が必要)。
アイコンと起動画面は assets/ の元画像から npx @capacitor/assets generate --android で生成しています。
Android 版と同じ Capacitor のプロジェクトに ios/ を足して作っています(構成は techgymjp/jet-fighter と同じ)。Mac での作業手順は docs/IOS_BUILD.md です。
jp.techgym.centerfly(Android と同じ)。iPhone 専用・横画面固定・全画面・プレイ中は画面を消さないnpm run ios:sync(テスト広告)/ npm run ios:release(本番広告。App Store 用)/ npm run ios:open.github/workflows/ios.yml で push のたびに Xcode でビルドできるかを確認(署名なし)、.github/workflows/ios-release.yml で本番広告の設定でビルドして TestFlight にアップロード(ビルド番号は実行回数 + 100)docs/store/ios/、掲載文は docs/store/ios/listing-appstore.md、審査用の説明は docs/store/ios/review-notes.md著作権はテックジム株式会社に帰属します(All rights reserved)。許可なく複製・改変・再配布すること、Web サイトやアプリ(Google Play、App Store など)として公開・販売すること、名前・ロゴ・アイコン・画像を使うことを禁止します。 テックジムの受講生が学習目的で複製・改変することは許可しますが、アプリストアでの公開・広告の掲載・販売などの商用利用は禁止し、著作権表示を残してください。 同梱の three.js は MIT License です。詳しくは LICENSE を見てください。
Center Fly — you play center field, and 100 fly balls are coming your way. Can you catch them all? A 3D baseball game viewed from behind the center fielder, looking in toward home plate under the stadium lights.
index.html in a browser to play. An Android app (Capacitor) is also built by GitHub Actions.