2017-05-22 5 views
3

[Lance]リスナーから情報を取得してゲームエンジンに取り込む最善の方法は何ですか?現在、スパイスシップを私のマウスに追いかけようとしています。マウスの動きを聞き、カーソルのXとYを記録するMouseControls.jsを作成しました。私は、ゲームエンジンにそれを得るために、クライアントエンジンに次のコードを使用リスナーから情報を取得し、それをゲームエンジンに取り込む最善の方法は何ですか?

this.sendInput('mouseMove', { 
cursorX: this.mouseControls.cursorPos.cursorX, 
cursorY: this.mouseControls.cursorPos.cursorY 
}); 

そしてゲームエンジンで、私はそうのようなProcessInputの方法で二番目のパラメータを読んでみました:

inputData.inputOptions.cursorY 

けど"未定義のプロパティ 'cursorY'を読み取ることができません。私は、他のコントロールの各キーは毎回同じことをするが、変数の情報を(cursorX/Y)に渡す方法はわかりません。これはすべてスパイアシのチュートリアルbtwを変更しています。私は代わりにマウスオブジェクトを作っていますか?

更新:私は深く掘り下げてもう少し学んだので、私は自分の問題を絞り込んだと思う。

ゲームエンジンが入力を処理する瞬間、それは追加情報なしで入力の名前しか持たないので、毎回まったく同じことをするキープレスにとっては問題ありません。しかし、マウスの動きでは、 "mouseMove"入力を受け取った後は、Mouse ControllerからマウスXとYの位置を取得する必要があります。これはゲームエンジンからは見えません。だから私はその瞬間にこれらの価値をどのように得るのでしょうか?

あなたは私のコードを見ることができないので、それはあなたが非常に接近しているGameEngineのProcessInputの方法

答えて

2

からKeyboardControlsから「activeInput.up」の値を取得するのと同じです!あなたはClientEngineから、このように入力を送信する場合:)

は:

document.addEventListener('mousemove', (e)=>{ 
    this.sendInput('mousePos', { x: e.clientX, y: e.clientY }); 
}) 

はその後 GameEngineに、あなたはオプションのプロパティ経由でアクセスすることができます。

processInput(inputData, playerId) { 
    super.processInput(inputData, playerId); 
    console.log(inputData.options.x, inputData.options.y); 
} 

参考:Lance docs

関連する問題