
异步等待与 SFML 日志输出
node examples/sleep-err.cjs
S 等待两秒,W 写日志,N 触发原生诊断;R 将日志重定向到面板,M 静音,D 恢复 stderr。Esc 退出。
可选帧数限制:--frames=120。
npm run demo:sleep-err
在 sfml.js 仓库根目录运行。首次执行
npm ci,修改源码后执行npm run build。除 Network 外,各入口都会打开图形窗口,需要显示服务与 OpenGL 支持。
构建后可直接运行下列命令;package.json 中的 demo:* 脚本会按配置重新构建。关闭窗口即可退出,指定帧数的入口也会自动结束。截图只展示特定场景的渲染结果,不代表性能或设备测试。
仅使用公开 API 的应用请从 快速开始 入手。辅助文件归在主入口下,不作为独立程序。

异步等待与 SFML 日志输出
node examples/sleep-err.cjs
S 等待两秒,W 写日志,N 触发原生诊断;R 将日志重定向到面板,M 静音,D 恢复 stderr。Esc 退出。
可选帧数限制:--frames=120。
npm run demo:sleep-err

不同数值标量的向量运算
node examples/vector-scalars.cjs
动态展示不同标量类型的 TypedArray 共享存储与原生对比。Esc 退出。
不支持 --frames,请关闭窗口停止。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。

窗口事件、光标和输入诊断
node examples/window.cjs
F1 切换光标,F2 切换光标显隐,F3 切换按键重复,F4 切换 VSync,F5 调整窗口尺寸,F6 切换尺寸限制,F7 修改标题,F8 隐藏后恢复窗口,F9 切换事件处理方式,F10 移动窗口。方向键移动标记,输入文字、Backspace 删除,Esc 退出。
可选帧数限制:--frames=120。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
辅助文件:bitmap-label.cjs
npm run demo:window

System 与 Window 接口
node examples/system-window.cjs
C 将示例文字写入系统剪贴板,V 读取剪贴板,A 切换 OpenGL 上下文,Esc 退出。Touch 需要受支持的设备;macOS 触控板手势不是 SFML 触摸事件。
可选帧数限制:--frames=120。
npm run demo:system-window

值类型、变换、形状、顶点与文字的综合场景
node examples/all-types.cjs
可选帧数限制:--frames=120。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
辅助文件:all-types-scene.cjs, bitmap-label.cjs
npm run demo:types
大量精灵绘制
node examples/sprites.cjs
256 个动态精灵。可选 --uncapped 移除演示定时器。
不支持 --frames,请关闭窗口停止。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
npm run demo

像素编辑、复制、遮罩与编解码
node examples/image.cjs
可选 --file=/path/to/image.png 指定图片。
可选帧数限制:--frames=120。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
辅助文件:bitmap-label.cjs
npm run demo:image

图片加载、裁剪、局部上传与采样
node examples/texture.cjs
可选帧数限制:--frames=120。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
辅助文件:bitmap-label.cjs
npm run demo:texture
精灵动画、翻转、颜色与边界
node examples/sprite.cjs
可选帧数限制:--frames=120。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
辅助文件:bitmap-label.cjs
npm run demo:sprite

离屏合成、纹理视图与绘制快照
node examples/render-texture.cjs
可选帧数限制:--frames=120。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
辅助文件:bitmap-label.cjs
npm run demo:render-texture

自定义组合、父子变换、混合与模板
node examples/drawable.cjs
可选帧数限制:--frames=120。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
辅助文件:bitmap-label.cjs
npm run demo:drawable

动态瓦片与连续顶点
node examples/vertex-array.cjs
可选帧数限制:--frames=120。
仓库诊断入口:使用内部原生预览或验证接口,不是仅使用公开 API 的应用模板。
npm run demo:vertices

文字排版与顶点动画
node examples/text.cjs
可选 --font=/path/to/font.ttf 和 --text=中文示例 指定字体与文字;字体需要包含对应字形。Esc 退出。
可选帧数限制:--frames=120。
npm run demo:text

Sound、Music、Worker 供数、音效与录音回放
node examples/audio.cjs
1~4 切换模式,Space 播放/暂停,S 停止,E 切换音效,R/T 开始/结束录音,方向键调整声像和音量,Esc 退出。录音需要麦克风与权限;普通启动等待输入。
可选帧数限制:--frames=120。
辅助文件:audio-worker.cjs
npm run demo:audio
本机 TCP、Packet、UDP、Selector
node examples/network.cjs
纯控制台示例,在动态分配的本机回环端口上交换 TCP、Packet、UDP 和 SocketSelector 数据;单个终端即可运行,结束后自动关闭套接字。
npm run demo:network
支持 SFML_DEMO_SNAPSHOT 的图形示例可保存运行画面。例如在 macOS/Linux:
SFML_DEMO_SNAPSHOT=/tmp/sfml-render-texture.png \
node examples/render-texture.cjs --frames=2PowerShell:
$env:SFML_DEMO_SNAPSHOT = "$env:TEMP/sfml-render-texture.png"
node examples/render-texture.cjs --frames=2
Remove-Item Env:SFML_DEMO_SNAPSHOT内置截图使用 SFML_DEMO_SNAPSHOT。all-types、sprites、drawable、vertex-array、system-window 和 sleep-err 始终写入 PPM,与文件扩展名无关,请使用 .ppm。image、texture、sprite、render-texture、window 和 audio 支持 PNG。text 与 vector-scalars 未实现此环境变量;两者的预览均通过临时插桩采集。
sleep-err 在最后一帧保存,vertex-array 在循环结束后保存,截图时请指定有限帧数。system-window、window 和 audio 至少需要两帧,其他内置预览可能在首帧保存。sprites 保存首帧后仍持续运行,需关闭窗口。截图来源见 sources.json。
Icons made by Lorc, Delapouite & Skoll game-icons.net · CC BY 3.0