什么是 fretted-strings?
fretted-strings 是一个基于 JavaScript 的 npm 包,它可以生成一组指定数量和长度的弦。它非常适合用于音乐类应用、游戏场景、交互式动画等场景。
安装
你可以使用 npm 安装 fretted-strings:
npm install fretted-strings
快速上手
const FrettedStrings = require('fretted-strings'); const strings = new FrettedStrings(6, 25); strings.generate(); console.log(strings.notes);
上面的代码会生成一组 6 根长度为 25 的弦,并输出它们的音符。
配置
构造函数
FrettedStrings 的构造函数需要传入两个参数:stringCount 和 stringLength。分别是弦的数量和长度。例如:
const strings = new FrettedStrings(6, 25);
表示生成 6 根长度为 25 的弦。
相关方法和属性
生成弦后,我们可以使用一些方法和属性来访问和操作这些弦。
方法
generate
生成弦,并初始化一些相关属性。
strings.generate();
noteAt
获取指定弦和位置的音符。
const note = strings.noteAt(2, 5); // 获取第 2 根弦上位置为 5 的音符
属性
notes
获取所有弦的音符数组。
const allNotes = strings.notes; // 获取所有弦的音符数组
currentString
获取当前弦的编号(从 0 开始)。
const currentStringNumber = strings.currentString; // 获取当前弦的编号
currentNote
获取当前弦上弹奏的音符。
const currentNote = strings.currentNote; // 获取当前弦上弹奏的音符
示例
我们来看一个更加详细的示例。以下是一个小程序,里面包含了一个使用 fretted-strings 生成弦的例子。
-- -------------------- ---- ------- ----- -------------- - --------------------------- ----- ------- - --- ----------------- ---- ----- -------- - - ------ ---- --------- -- ----- ---- -- ----- ------- - ----------------- ---------- ----- ------ - --------------------------------- ----- --- - ------------------------ -------- - ----- ------- -------- ------ - ---------------------------- ---------------- -- ------------- --------------- --- ---- - - -- - - ----------------------- ---- - ----- ------ - ------------------- --- ---- - - -- - - -------------- ---- - ----- ---- - ---------- -- -------------- - ------------- - ------ - ---- - ------------- - -------- - ----------------------- - - -- - - - --- --------- - ---- - - - -------- ------- - ----- ---------- - -------------- -- - --------------- -- --------------------- - ----- ---- - -------------------- -- ---------- --- ----------------- - ------------ - - -- --------------- -------------- -- - ------------------ -- ------ ------- - --------展开代码
这是一个在 canvas 上显示弦的程序,并且可以播放该弦的一个音符。程序里用到了多个 fretted-strings 的方法和属性。如果你对此感兴趣,可以了解一下并尝试运行下这个程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f292cf13b0ab45f74a8ba89