AndEngineゲームでは、ボールの物理ボディを投げたいです。ユーザーは角度と力を設定して投げます。そのシナリオは、AngryBirdsで見ることができるものと同じです。力と角度の両方を計算しましたが、両方を同時にボールに適用する方法がわかりません。つまり、ボールは計算された角度で、特定の力で投げられる必要があります。誰かが私を正しい方向に導くことができますか?
これが私のコードスニペットです:
@Override
public boolean onAreaTouched(TouchEvent event,ITouchArea pTouchArea, float x, float y) {
// TODO Auto-generated method stub
if(event.isActionDown()) {
......
}
else if(event.isActionMove()) {
......
}
else if(event.isActionCancel() || event.isActionOutside() || event.isActionUp()) {
.....
launchHero(hero, string1.getX1()/PIXEL_TO_METER_RATIO_DEFAULT, string1.getY1()/PIXEL_TO_METER_RATIO_DEFAULT, x/PIXEL_TO_METER_RATIO_DEFAULT, y/PIXEL_TO_METER_RATIO_DEFAULT);
}
public void launchHero(Hero hero, float originX, float originY, float fingerX, float fingerY) {
Vector2 shoot = new Vector2((originX - fingerX), -(originY - fingerY));
shoot = shoot.nor().mul(10);
hero.getBody().setLinearVelocity(shoot);
}
}
return false;
}
(originY-fingerY)にネガティブを追加しました。これを行わないと、ボールが最初に下がってから、ベースに衝突した後、上に上がるからです。