1

シンプルなコード行または API を探しています。

BabylonJS を使用してオンライン ゲームを作成していますが、問題が発生しました。私の問題を裏付けるドキュメントが見つかりません。私は使っている

canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock;
    canvas.requestPointerLock();

マウスをロックするには、通常はクリックしてドラッグする必要があります。私はまた、基本的な動きのためにこの動きのスクリプトを使用しています:

function KEY_DOWN(event)
{
    if (event.keyCode == 87)
    {
        player.position.z -= 0.5;
    }
    else if (event.keyCode == 65)
    {
        player.position.x += 0.5;
    }
    else if (event.keyCode == 83)
    {
        player.position.z += 0.5;
    }
    else if (event.keyCode == 68)
    {
        player.position.x -= 0.5;
    }
}

残念ながら、これは軸上でのみ変換されます。固定軸上を移動するだけでなく、マウスがどこを見ているかを判断してそのポイントに向かって移動する方法はありますか? 私が必要とする正確な方法を持っているものを見つけることができないようです。ありがとう!

4

1 に答える 1

1

API については知りませんが、問題を正しく理解していれば、それほど悪くはないはずです。ポイントがロックされた後、mousemove イベントにフックする必要があります。ここに示すような単純な処理の代わりに: http://www.html5rocks.com/en/tutorials/pointerlock/intro/を実行する必要があります。そのハンドラーのキーで可能な動きの各ベクトルに対するベクトル計算。実際には、マウスのデルタに基づいて、pointerlockchange ハンドラー内でキーを押すたびに対応する x、y、z デルタを計算します。マウスのデルタは一度に最大 2 つの軸にしか影響しないため、思ったほど悪くはありません。

于 2016-03-31T13:39:21.100 に答える