プロジェクトでは、Kinect for Xbox でフラッシュゲームを作成する必要があります。AS3NUI ライブラリを使用してほとんどの Kinect 機能にアクセスすることは、私にとってはうまくいきました。
手の動きでパドルを上下に動かしていくポンゲームです。パドルを動かす方法をいくつか試しましたが、どれも本当に正確ではありません。そして、それらがより正確である場合、それらはもはやまったく滑らかではありません.
私の最初の方法は、paddle.y を hand.y の値に設定することでした。
_paddleLeft.y = (userLeft.leftHand.position.y);
もちろん、結果はひどいものでした。これは私の次の試みでした:
_paddleLeft.y = (userLeft.leftHand.position.rgbRelative.y * stage.stageHeight*2);
これはかなり正確でしたが、まったくスムーズではなく、ステージの最上部または最下部に到達するのが非常に困難な場合がありました。
最後に、私は別のことを試しました。針の最後の Y 位置を保存し、新しい位置が高いか低いかを確認し、その上でパドルを上下に動かしました。
currYLeft = userLeft.leftHand.position.rgb.y;
currYRight = userRight.rightHand.position.rgb.y;
if (currYLeft > prevYLeft + 10){
isDown1 = true;
isUp1 = false;
}else if( currYLeft < prevYLeft - 10){
isDown1 = false;
isUp1 = true;
}
prevYLeft = userLeft.leftHand.position.rgb.y;
prevYRight = userRight.rightHand.position.rgb.y;
別の enterframehandler で、それらを上下に移動させます。
これは私が達成した最もスムーズな方法ですが、もはや正確ではありません。最初の 2 つの方法にはないある種の遅延があります。
動きをスムーズかつ正確にすることができるかどうかを知りたいですか?そして、これがどのように可能であるか。