🙀如何创建一个疯狂的过山车构建器(🎢RollerCoaster.js + React Three Fiber + AI)

发布: (2026年1月12日 GMT+8 19:07)
7 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您想要翻译的具体文本内容,我将按照要求保留源链接、格式和技术术语,仅翻译正文部分。谢谢!

介绍 🚀

上次,我创建了一个永无止境的有趣过山车,并在 DEV Community 上写了一篇文章。

如何创建永无止境的乐趣 (🎢 RollerCoaster.js + React Three Fiber + AI)

  • 你可以制作 疯狂的起伏,如同陡峭的悬崖。 🙀
  • 你可以制作 疯狂的急转弯,真实的过山车根本无法在不撞车或跳出轨道的情况下完成。 🙀
  • 在下降时,你可以 穿透地面,享受地下行驶的乐趣。 🙀
  • 你可以随意制作 疯狂的环形,不受物理限制。 🙀

我没有对轨道构建器的输入值设限,所以你可以输入极端数值。 🙀
使用屏幕左侧的 UI 来制作 疯狂的过山车

我是如何打造疯狂过山车构建器 🛠️

上一次,我使用 RollerCoaster.js(来自著名的 3D 库 Three.js)并借助 AI,构建了一条过山车。那时我用了 React Three Fiber——Three.js 的 React 包装器,并在 CodePen 上发布了带有初学者友好注释的示例。

在本次版本中,我:

  1. 以之前的 CodePen 项目为基础。
  2. 添加了 轨道构建函数 与 UI,以创建 疯狂轨道
  3. 重构代码:创建公共常量与组件,减少冗余,使所有内容可复用。
  4. 利用 React‑Three‑Drei 中的 SkyCloud 实现逼真的天空和云彩。
  5. 使用 Tailwind CSS 简化样式。

已知问题

#问题我的尝试当前变通方案
1️⃣在上升/下降轨道前未添加曲线轨道时,上升/下降轨道会扭曲。传入默认曲线值(未生效)。RollerCoaster.js 复制 RollerCoasterGeometry 并去除扭曲。
2️⃣环形轨道的起点和终点重合,导致崩溃。为环形轨道添加了小幅扭曲(产生间隙)。保持演示简洁,保持环形轨道不扭曲。

找到更简洁的解决办法后,我会更新代码。

新版本

  • 水下版 – 添加了类似水下的 CSS 渐变背景和上升气泡。
  • 水下版 2 – 大量气泡改进:
    • 从平面气泡切换为 3D 气泡 🫧
    • 添加左右摇摆,实现更真实的动画 🫧
    • 气泡尺寸随深度变化(底部小,顶部大) 🫧
    • 应用模糊效果,营造更深的水下感受(前景气泡保持清晰,背景气泡变暗) 🫧

你更喜欢哪个水下版本?

未来更新想法 💡

  • 添加更多背景图案。
  • 在背景中添加更多对象。
  • 添加可自定义的相机控制。
  • 添加速度控制。
  • 将过山车、轨道构建器、多背景及其动画合并为一个项目。
  • 使用 RollerCoaster.js 发布应用。

如果该项目受到广泛关注,我可能会将其转变为功能完整的应用。我之前在 Microsoft Store 发布过脑力训练应用,并发布过 Chrome 扩展,因此我有信心再次实现。

可作为免费 Chrome 扩展获取

在 Microsoft Store 上可用(免费)

Source:

框架实验

Vue.js 版本

我使用 TresJS(Vue 的 Three.js 包装器)构建了一个 Vue.js 版本。我觉得 Vue.js 比 React 更直观;React Hooks 对我来说“非常难”。我想做一个 CodePen 演示来对比 Vue 和 React,但 TresJS 在那里不受支持,于是我尝试了 StackBlitz,在那里可以运行(虽然启动稍慢)。

Angular 版本

我还尝试了使用 Angular‑Three(Angular 的 Three.js 包装器)的 Angular 版本。和 Vue 一样,我想做一个 CodePen 演示,但 Angular‑Three 和 CodePen 都不支持,于是我再次使用 StackBlitz

React vs Vue vs Svelte vs Angular – 对比表

框架难度项目规模社区规模3D 库
Svelte简单Threlte
Vue中等小‑中TresJS
React困难中‑大最大React Three Fiber
Angular最难中等Angular Three

四者都可以构建任何规模的项目,但它们通常在上述规模中最受欢迎。

相关帖子

  • 学习 🖼️ Meme 图片: 如何使用 🧠 AI 创建 🎨 3D 动画 (React Three Fiber vs Three.js vs A‑Frame + GSAP)
  • GSAP 动画: 我创建了一个网站动画,你可能会盯着看一会儿 (GSAP) 🎨

与 AI 相关的帖子

  • 🧠 如何让 Codex 像老朋友 Claude Code 那样提升你的情绪(重新获得“你说得完全正确!”) 🤖
  • 🤖🤖 如何轻松免费地并行运行 AI(Git Worktree Runner) 🧠🧠
  • 🤖 如何让 AI 更好地遵循你的指令,且免费(OpenSpec) 📝
  • 🧠 如何更高效地使用 AI … (帖子未完)

结论

CRAZY Roller Coaster 将为您带来疯狂的体验。只在屏幕上感受疯狂与狂热,别在现实生活中变得疯狂和生气。 🙀

我希望您从本文中学到了一些东西。感谢阅读。

问题与想法

  • 您有什么好点子可以让这款 CRAZY Roller Coaster 更好吗?
  • 您对 2D/3D 动画 有什么好点子吗?
  • 您了解 2D/3D 动画 吗?

我很想听听您的想法! ⬇️⬇️

Back to Blog

相关文章

阅读更多 »

你好,我是新人。

嗨!我又回到 STEM 的领域了。我也喜欢学习能源系统、科学、技术、工程和数学。其中一个项目是…