| 层级 | 技术 |
|---|---|
| 运行时 | Electron 28 |
| 游戏引擎 | Phaser 3.90 |
| UI 框架 | React 19 |
| 状态管理 | Zustand 5 |
| 语言 | TypeScript 5.7 |
| 构建工具 | Vite 6 + electron-vite 5 |
| 打包发布 | electron-builder 24 |
src/
├── main/ # Electron 主进程
│ ├── index.ts
│ └── steam.ts # Steamworks SDK 集成
├── preload/ # 预加载脚本( Context Bridge )
│ └── index.ts
└── renderer/ # 渲染进程
└── src/
├── App.tsx # 根组件 & 事件绑定
├── main.tsx # React 入口
├── phaser-game.tsx # Phaser ↔ React 桥接
├── components/ # React UI 组件
│ ├── main-menu.tsx
│ ├── game-overlay.tsx
│ ├── game-over.tsx
│ ├── skin-selector.tsx
│ ├── shop.tsx
│ ├── settings.tsx
│ └── daily-challenge.tsx
├── stores/ # Zustand 状态仓库
│ ├── game-store.ts
│ ├── input-mode-store.ts
│ └── player-store.ts
├── hooks/
│ └── use-game-events.ts # Phaser ↔ React 事件钩子
├── game/
│ ├── main.ts # Phaser 游戏引导
│ ├── event-bus.ts # 跨框架事件总线
│ ├── types/ # 共享 TypeScript 类型 & 枚举
│ ├── assets/ # Chrome 精灵图资源
│ ├── scenes/ # Phaser 场景
│ │ ├── boot.ts
│ │ ├── preloader.ts
│ │ └── game-scene.ts
│ ├── objects/ # 游戏对象
│ │ └── dino.ts
│ ├── managers/ # 游戏子系统管理器
│ │ ├── background-manager.ts
│ │ ├── camera-source.ts
│ │ ├── difficulty-manager.ts
│ │ ├── ghost-manager.ts
│ │ ├── head-pose-source.ts
│ │ ├── ground-manager.ts
│ │ ├── input-manager.ts
│ │ ├── level-manager.ts
│ │ ├── obstacle-manager.ts
│ │ ├── power-up-manager.ts
│ │ └── score-manager.ts
│ ├── sprites/ # 程序化精灵生成
│ └── audio/ # 程序化音频生成
└── styles/
├── global.css # 设计令牌 & 基础样式
└── components.css # 组件样式
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.