攻略

台球游戏源码:拆解一套 HTML5 八球资源包

物理、规则、电脑对手和存档分别放在不同文件里:Velvet Pool 源码包含什么,买家通常先改什么。

Velvet Pool 美术图:绿色球台上,球杆对准白球,3 号、8 号和 4 号球靠近角袋。

台球游戏源码值不值得买,要看三样东西是否放在独立、可读的文件里:球的物理、八球规则和电脑对手。如果它们缠在一起,改个台呢颜色或电脑难度都会变成一场调试。我们的八球模板 Velvet Pool 把它们分开了,本文逐个文件带你看它的资源包。

我们会讲代码怎么组织、买家通常先改什么、怎么部署或打包成应用、许可允许什么,以及这个版本不包含什么。下文所有文件名都来自游戏附带的买家指南。

简单说:Velvet Pool 是基于 WebGL2 的原生 JavaScript,不用 3D 库,也没有构建步骤。改一个文件,复制到游戏文件夹,刷新页面即可。

这套台球游戏源码包含什么

Velvet Pool 是一款完成的八球游戏,不是引擎,也不是入门套件。下载包里有四个文件夹:game/ 是可直接上传的构建版本;source/ 是同一款游戏的开发者版本,附 README、package.json 和测试;documentation/ 是英文和葡萄牙文的图文指南;THIRD-PARTY-LICENSES/ 存放字体许可文本。

游戏本身是标准八球玩法,包含犯规、自由球,以及全色球或花色球。电脑对手有三个难度(Easy、Medium 和 Hard),还有可撤销、可摆球、可重新摆球的自由练习台,以及同一设备上的双人对战。玩家可以给母球加高杆、低杆或侧旋,本地成就可解锁五种台呢颜色和五种球杆样式。界面支持 14 种语言。

  • 技术栈:原生 JavaScript、ES 模块和 WebGL2。没有 Three.js 或其他代码库。
  • 代码:source/src 和 game/src 中是格式规范的普通 JavaScript,没有压缩,也没有打包。
  • 测试:可选,需要 Node.js 20 或更高版本。测试覆盖物理、八球规则、电脑对局和翻译键。
  • 撰写本文时的版本:1.1.0,更新于 2026年10月22日。

查看 Velvet Pool 商品页、演示和手册

文件是怎么组织的

game/ 和 source/ 的结构相同,所以一个文件夹里的路径在另一个文件夹里指向同一个文件。对台球游戏来说,最重要的划分是 src/core/(模拟和规则)与 src/game/(玩家接触到的一切)。

  • src/core/physics.js:球的模拟、旋转和库边反弹。
  • src/core/rules.js:八球规则和犯规判定。
  • src/core/ai.js:电脑如何选择击球。
  • src/game/controls.js:瞄准、力度和旋转的输入。
  • src/game/progress.js:成就、台呢、球杆和比赛计分。
  • src/game/i18n.js:14 种语言的文字,列在 LANGS 中。
  • src/game/localRecords.js:本地分数记录。
  • src/game/audio.js:音效和音乐播放。
  • css/style.css 和 css/fonts.css:主题、响应式布局和字体声明。
  • assets/:美术、音频和字体,标志文件在 assets/logo/。

由于物理、规则和电脑对手是独立模块,你可以让电脑更手下留情,而不影响球的运动;也可以修改一条犯规规则,而不用重新调库边。购买任何台球代码时,这种分离都是最该看的一点。

买家先改什么

大多数项目都按同样的顺序来。先改玩家看得到的,再改玩家感受得到的,规则留到最后,因为规则最容易引入 bug。

  1. 品牌:替换 assets/logo/ 里的标志文件,并在 CSS 中调整对应尺寸。允许白标,所以可以用你或客户的名字替换我们的。
  2. 球台外观:颜色和字体在 css/style.css 里。台呢和球杆的定义在 progress.js 里。保持它们的 ID 不变,否则玩家会失去已解锁的外观。
  3. 文字和语言:所有字符串都在 i18n.js 里。改你需要的措辞;语言列表在 LANGS 中。
  4. 电脑难度:击球选择在 ai.js 里。一次调一个难度,并和它完整打一局。
  5. 物理:摩擦、旋转和库边反弹在 physics.js 里。这里的小改动影响很大,每改一次都跑一遍测试。
  6. 规则:本地玩法变体放在 rules.js 里。犯规和自由球除了用测试套件,也要手动测试。

所有修改的流程都一样:在 source/ 里编辑文件,复制到 game/ 中的相同路径,通过 HTTP 提供该文件夹,然后刷新。买家指南建议一次只改一项功能,每次改完都测试菜单、一局比赛、暂停、结算界面和刷新。

部署、嵌入或打包成应用

部署是最简单的部分。把 game/ 里的所有内容上传到 public_html/velvet-pool/ 这样的文件夹,保留子文件夹结构,然后打开网址即可。服务器端不需要 npm、终端、PHP、数据库或账号。一个能通过 HTTPS 提供静态文件的主机方案就够了。

  • 不要双击打开 index.html:浏览器会在 file:// 下拦截游戏模块。本地测试时,在 game/ 里运行 python -m http.server 8765。
  • 如果屏幕一直空白,检查 WebGL2 是否启用,以及文件名的大小写是否保持原样。
  • 如果浏览器拒绝加载某个模块,说明你的服务器给 .js 发送了错误的 MIME 类型。
  • 在门户网站的 iframe 中嵌入时,要允许全屏和自动播放。

游戏运行所需的一切都在 game/ 里,不会从 CDN 或其他网站加载任何东西。不过新打开页面时仍要访问你的主机,所以它不是可安装的离线应用。它支持触摸屏:玩家在球台上瞄准,拉动力度控件。

资源包不含原生应用项目。如果你想把游戏上架 Google Play 或 App Store,用 Capacitor 这类封装工具是常见路线,其开发方称之为用 Web 代码构建移动应用的跨平台原生运行时。构建和维护商店项目由你负责,或者由我们另行报价提供服务。

这个版本不包含什么

Velvet Pool 是本地浏览器版本。没有在线多人或私人房间,没有在线排行榜,没有云端账号,也没有广告 SDK。两个人可以在同一设备上对战,符合条件的电脑对局的个人分数保存在浏览器中。练习和同设备对战不保存分数。

在线对战需要你自己的服务器和开发工作。这是一个真正的项目,所以要从一开始就做预算,而不是指望模板慢慢长成那样。如果你的游戏目录需要更多体育游戏,下面这两款也以可直接部署的浏览器版本出售。

Puttide:30 洞 3D 迷你高尔夫,同样是原生 JavaScript

Golazo:50 支国家队的桌上足球

一段话说清许可和价格

Velvet Pool 标价 39 美元。2026年11月30日前,黑色星期五促销所有模板减 15%,所以售价为 33.15 美元;一次购买两个或更多模板,还可再享 5% 至 20% 的折扣。每次购买都是一份永久、非独占的许可,用于一个最终产品,可以是你自己的,也可以是一位客户的。你可以在该产品内修改代码、美术和音频,并换上自己的品牌。玩家可以免费访问,也可以通过广告访问。你不能单独转售模板或其代码。包含 6 个月技术支持,结账时购买延期则为 12 个月;定制开发、托管以及 SDK 或门户集成另行报价。

阅读完整的许可和支持条款

常见问题

台球游戏源码是可读的还是压缩过的?

可读的。source/src 和 game/src 中的 JavaScript 是格式规范的普通代码,没有压缩或打包的文件。

需要 Node.js 或构建步骤吗?

不需要。你在 source/ 里编辑文件,再复制到 game/。只有想运行可选测试时,才需要 Node.js 20 或更高版本。

可以把电脑调得更简单或更难吗?

可以。电脑的击球选择在 src/core/ai.js 里,和物理分开,所以调整它不会改变球的运动。

能在手机上玩吗?

能。支持触控输入,控件会适配屏幕。需要 WebGL2,性能取决于设备,所以请在你的玩家使用的手机上测试。

把游戏迁到新域名后,玩家的进度还在吗?

不在。存档属于浏览器源,换域名后玩家要从头开始。请在上线前确定最终网址。

可以加入在线多人吗?

仅靠这个版本做不到。需要你自己的服务器和开发。我们可以作为定制工作报价。

这套台球代码适合谁

它适合想在游戏目录里加一款八球游戏的门户或网站、为一位客户交付带品牌台球游戏的代理公司,以及想在没有 3D 库干扰的情况下读懂台球物理和规则怎么写的开发者。如果你的计划依赖在线对战或共享排行榜,它就不太合适。

购买前在手机和笔记本电脑上都玩一下演示,再打开手册里的文件结构图。如果物理、规则和电脑对手的划分符合你的工作方式,剩下的就是几个下午的修改。

试玩 Velvet Pool 演示并购买许可

需要修改或多份许可?申请报价