4

[Lance] 从听众那里获取信息并将其传送到游戏引擎的最佳方式是什么?目前正试图让 Spaaaceship 跟随我的鼠标。我制作了一个 MouseControls.js,它监听鼠标移动并记录光标的 X 和 Y。然后我在客户端引擎中使用以下代码将其发送到游戏引擎

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 方法中的 KeyboardControls 中获取“activeInput.up”值

4

1 回答 1

2

你很亲近!:)

如果您从以下位置发送这样的输入ClientEngine

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);
}

参考:Lance 文档

于 2017-05-22T16:18:33.357 回答