大数跨境

《椭圆》光之迷宫小游戏

《椭圆》光之迷宫小游戏 AI提示词设计
2026-10-07
5
导读:请生成一个单文件 HTML/CSS/JavaScript 的椭圆闯关解谜游戏,名称为「椭圆密室 · 光之迷宫」

请生成一个单文件 HTML/CSS/JavaScript 的椭圆闯关解谜游戏,名称为「椭圆密室 · 光之迷宫」。游戏以密室逃脱为背景,学生通过调整椭圆镜面的几何参数,利用椭圆的光学反射性质,让激光从激光炮射出后经椭圆反射精准命中密码锁,从而解锁下一关。一、核心玩法与物理机制

  • 椭圆有两个焦点,从其中一个焦点射出的任意方向光线,经椭圆内壁反射后必经过另一个焦点。
  • 激光炮固定于场景中,发射红色激光。玩家可调整椭圆的位置、旋转角度、半长轴 a、半短轴 b,以及激光炮的瞄准方向。
  • 激光与椭圆求交后按反射定律反弹,可多次反射(最多 8 次)。若激光击中密码锁圆形区域,则过关。
  • 椭圆焦距满足 c = √(a² − b²),面板需实时显示焦距 2c。
  • 场景中可放置矩形障碍物,激光碰到障碍物即被吸收,无法继续前进。
    二、关卡设计(共 5 关)
  1.    
  2. 第 1 关 · 初识焦点:激光炮与密码锁水平放置,椭圆初始角度倾斜,引导玩家将两个焦点分别对准激光炮和密码锁。
  3.    
  4. 第 2 关 · 旋转镜面:激光炮与密码锁不在同一水平线,需旋转椭圆长轴方向使焦点连线对准二者。
  5.    
  6. 第 3 关 · 改变焦距:调整 a、b 使焦距 2c 等于激光炮到密码锁的距离。
  7.    
  8. 第 4 关 · 障碍迷宫:加入一个矩形能量块阻挡直线路径,玩家需改变瞄准方向绕开障碍物。
  9.    
  10. 第 5 关 · 终极密室:加入两个矩形能量块,封锁直线路径,需综合运用椭圆光学性质通关。
    每关需显示关卡名称和简短描述,描述中可包含数学公式提示。
    三、视觉风格
  • 整体底色纯白色(#ffffff),主题色以浅蓝色(#2f8bff / #5aa7ff)和红色(#e63946)为主。
  • 画布内部逻辑分辨率 960×540,严格 16:9 比例。
  • 椭圆填充浅蓝径向渐变,边框浅蓝发光;焦点为红色脉冲圆点,外圈浅蓝描边;长轴用浅蓝虚线表示。
  • 激光为红色实线,叠加白色流动虚线光点;激光炮红色炮管配浅蓝底座;密码锁红色圆形加锁体,解锁后变浅蓝。
  • 障碍物为浅蓝填充矩形,带斜纹纹理和浅蓝边框。
  • 背景为白色,叠加淡浅蓝网格和边缘浅蓝晕染。
    四、布局与左右比例
  • 采用左右布局:左侧为画布舞台,右侧为控制面板。
  • 整体使用 Grid 布局:grid-template-columns: minmax(0,1fr) 380px,最大宽度 1760px 居中。
  • 左侧画布自适应剩余空间,保持 16:9 比例,最大宽高不溢出,圆角 14px,浅蓝阴影。
  • 右侧面板固定宽度 380px,背景 #f7fbff,左边框 1px #dceaf8,内部可滚动。
  • 响应式:≤1280px 时面板宽度改为 340px;≤960px 时改为上下布局,画布占 54vh,面板占 46vh。
    五、交互控件
  • 右侧面板包含:
    • 旋转角度 θ 滑块(0°–180°,步长 0.5°)
    • 半长轴 a 滑块(160–460,步长 1)
    • 半短轴 b 滑块(60–460,步长 1,且自动限制 b ≤ a)
    • 瞄准方向滑块(0°–360°,步长 1°)
    • 实时读数:焦距 2c、状态(待机/未命中/命中/已解锁)
    • 「重置本关」按钮
  • 画布内可直接拖动椭圆移动位置(限制在画布边界内)。
  • 过关后弹出遮罩卡片,显示「密码锁已解锁」和「进入下一关」按钮。最后一关按钮显示「重新挑战」。
    六、技术实现要点
  • 使用 Canvas 2D 绘制所有图形,requestAnimationFrame 主循环。
  • 射线与椭圆求交:将射线变换到椭圆局部坐标系,解二次方程,取最近正根。
  • 反射计算:利用椭圆隐式方程求交点处法线,按反射公式 d' = d − 2(d·n)n 计算新方向。
  • 射线与圆求交用于密码锁碰撞检测;射线与轴对齐矩形求交用于障碍物。
  • 每次更新时追踪激光路径,存储线段用于绘制;若命中密码锁则触发过关。
  • 所有滑块事件实时更新状态和读数。
  • 代码为单文件,无外部依赖,直接运行。
    请严格按以上要求生成完整的 HTML 文件。

【声明】内容源于网络
0
0
AI提示词设计
极简AI入门
内容 378
粉丝 0
AI提示词设计 极简AI入门
总阅读9.6k
粉丝0
内容378