packages/drumkeyboard/root/scene-drumkeyboard/index.js

23 lines
884 B
JavaScript
Raw Normal View History

2025-07-29 10:59:32 +02:00
AFRAME.registerComponent('bind-element-to-finger', {
multiple: true,
schema: {
hand: {type: 'string', default: 'r_handMeshNode'},
finger: {type: 'string', default: 'index-finger-tip'},
target : {type: 'selector'},
},
tick: function (time, timeDelta) {
const joint = AFRAME.scenes[0].object3D.getObjectByName(this.data.hand)?.parent.getObjectByName(this.data.finger)
if ( joint && this.data.target.object3D.parent == AFRAME.scenes[0].object3D ) this.data.target.object3D.parent = joint
}
})
window.keyboardTarget = typinghud
let kbd = addDrumKeyboard()
kbd.addEventListener( "keypressed", e => {
document.querySelector("[isoterminal]").components.isoterminal.term.send(e.detail.key)
// consider executing the content on ENTER
// document.querySelector("[isoterminal]").components.isoterminal.term.exec("ls")
// raw keypress, this getting SHFT, ENT, etc
})