Javascript 从听众那里获取信息并将其传送到游戏引擎的最佳方式是什么?
[Lance]从听众那里获取信息并将其传送到游戏引擎的最佳方式是什么?目前正在尝试使Spaaaceship跟随我的鼠标。我制作了一个MouseControls.js,用于监听鼠标移动并记录光标的X和Y。然后,我在客户端引擎中使用以下代码将其发送到游戏引擎Javascript 从听众那里获取信息并将其传送到游戏引擎的最佳方式是什么?,javascript,multiplayer,lance,Javascript,Multiplayer,Lance,[Lance]从听众那里获取信息并将其传送到游戏引擎的最佳方式是什么?目前正在尝试使Spaaaceship跟随我的鼠标。我制作了一个MouseControls.js,用于监听鼠标移动并记录光标的X和Y。然后,我在客户端引擎中使用以下代码将其发送到游戏引擎 this.sendInput('mouseMove', { cursorX: this.mouseControls.cursorPos.cursorX, cursorY: this.mouseControls.cursorPos.curs
this.sendInput('mouseMove', {
cursorX: this.mouseControls.cursorPos.cursorX,
cursorY: this.mouseControls.cursorPos.cursorY
});
然后在游戏引擎中,我尝试读取processinput方法中的第二个参数,如下所示:
inputData.inputOptions.cursorY
但我得到错误“无法读取未定义的属性'cursorY'。我知道其他控件的每个键每次都做同样的事情,但我不知道如何传递变量信息(cursorX/Y)。这是所有修改spaaace教程顺便说一句。我应该做一个鼠标对象吗
更新:我已经深入挖掘,学到了更多,所以我想我已经缩小了我的问题范围。详情如下:
在游戏引擎处理输入的那一刻,它只有输入的名称,没有额外的信息,这对于每次都做完全相同的事情的按键来说是很好的。然而,随着鼠标的移动,一旦我收到“mouseMove”输入,我还需要从我的鼠标控制器获取鼠标的X和Y位置,这在游戏引擎中是不可见的(据我所知)。那么我如何在那一刻得到这些值呢
由于您看不到我的代码,这相当于从GameEngine的processinput方法的键盘控件中获取“activeInput.up”值(非常接近!)
如果您从客户端引擎发送这样的输入:
document.addEventListener('mousemove', (e)=>{
this.sendInput('mousePos', { x: e.clientX, y: e.clientY });
})
然后在GameEngine
中,您可以通过options属性访问它:
processInput(inputData, playerId) {
super.processInput(inputData, playerId);
console.log(inputData.options.x, inputData.options.y);
}
参考: