机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
RayCast.js 是一种实现曾经流行的三维渲染技术的方法,称为 ray-casting,该技术曾在1991年流行电子游戏《Wolfenstein 3D》中广为人知。
图形在 640x480 的 HTML5 画布中渲染,使用 2d 图形上下文。渲染程序的核心由恒定 Z 值的纹理映射墙体垂直线组成,以及平面表面的透视校正纹理映射。使用了离屏帧缓冲区以优化每像素渲染。
设置
需求
- Node.js
ejsexpress
克隆仓库后,导航到根文件夹并使用 npm 安装依赖项。
$ npm install
一旦所有依赖项安装完成,你就可以用以下命令启动 Express 开发服务器:
$ npm run start
控制
| 操作 | 按键 |
|---|---|
| Movement | W A S D |
| 自由视角 | ↑ → ↓ ←,或者鼠标* |
| 改变高度 | Q E,或者 * |
| 射击 | ⎵,或者 * |
| Interact | ⏎ |
| 切换全屏模式 | F |
* 您应先点击
在 canvas 上以激活鼠标控制。
实时演示
地图编辑器 GUI
即将推出...
功能包括
- 相机自由度 "1.5" 度(俯仰通过一种称为 y-剪切的过程实现)
- 不同水平的相机高度
- 完全贴图的墙壁、地板和天花板
- Alpha 混合
- 户外空间的 360° 视差天空
- 光线衰减(基于距离/深度的阴影)
- 自定义碰撞系统,还支持与非轴向对齐几何体的碰撞,例如斜墙
- 门
- 斜墙
- 小地图显示
待办事项
- 游戏中的二维精灵
thing - 半透明表面
- 倾斜表面
- 不同宽度、高度和深度的方块 (
free-form block)
本站来源与版权声明
- 本文标题:raycast.js - 一个用 JavaScript 从零编写的高级光线投射
- 本文链接:https://www.cn121.com/h5game/emre-aki-raycast-js.html
- 原项目:emre-aki/raycast.js 版权归原作者 emre-aki 及贡献者所有
- 收录信息:本站于 2026-10-04 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 GPL-3.0(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。基于本页内容形成的衍生作品, 须同样以该协议发布。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 emre-aki/raycast.js。
- 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。
*