画面上でダイナミックなボディをスムーズに動かすための解決策を見つけるために、私は多くのことを試みました。マウス ジョイントは私には機能しません。滑らかな動きには役立たないラバー バンド効果があります。また、線速度を適用してボールを動かそうとしましたが、できませんでした。体に単純なタッチの動きを与えるオプションは何ですか? たとえば、グローホッケーに似ていますか?
答えは、AndEngine に固有のものである必要はありません。Cocos2d も同様に機能します。
Touchリスナーを登録し、次を使用して「移動」アクションで体を動かそうとしました:
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final ITouchArea pTouchArea, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
switch(pSceneTouchEvent.getAction()){
case TouchEvent.ACTION_DOWN:
break;
case TouchEvent.ACTION_MOVE:
strikerBody.setLinearVelocity((pSceneTouchEvent.getX()-strikerBody.getPosition().x * PIXEL_TO_METER_RATIO_DEFAULT),(pSceneTouchEvent.getY()-strikerBody.getPosition().y * PIXEL_TO_METER_RATIO_DEFAULT));
break;
case TouchEvent.ACTION_UP:
break;
default:
break;
}}
体は正しい方向に動きますが、指の動きが少し速ければ、速度の大きさが増すにつれて、指から離れていきます。