私は自分のAndroidゲームに「レバー」を実装しようとしています。これが私が欲しいものを示し、それがどのように機能するかを示す画像です:
1)
2)
私はジョイントを使用してそれの基本を行うことができました:
final RevoluteJointDef revoluteJointDef = new RevoluteJointDef();
revoluteJointDef.initialize(anchorBody, movingBody, anchorBody.getWorldCenter());
revoluteJointDef.enableLimit = true;
revoluteJointDef.upperAngle = MathUtils.degToRad(40);
revoluteJointDef.lowerAngle = MathUtils.degToRad(-40);
physicsWorld.createJoint(revoluteJointDef);
そして、それが機能し、レバースティックを左右方向に動かすことができ、適切な角度を超えてはいけないので、この部分は完了です。しかし今、私はこのレバーを動かした後にアクションを実行するときの方法を探しています(たとえば、いくつかのドア/ゲートを開く)
これが私の基本的な考え方です。この方法でスティックの本体を作成することにより、スティックのどの部分がプレーヤー(左または右)によって触れられたかを確認する方法です。
つまり、左側と右側の2つのセンサーを追加することで、コンタクトリスナーでどちらの側がタッチされたかを確認します。
しかし、それでもアクションを実行する必要があるかどうかを確認する方法がわかりません。スティック角度が40または-40の場合、すべての更新を確認できることはわかっていますが、それは効果的な方法ですか?それとももっと良いものがありますか?ヒントをいただければ幸いです。ありがとう