画面の外から虫が入ってきたとします。これを行うには、4 つの座標 (StartX、StartY、TargetX、TargetY) が必要です。バグを適切な方向に回転させる方法は? 私はこれを何時間もいじっていて、この部分を理解することができませんでした. そのため、バグは画面に入りますが、正しい方向を向いていません。(4 つの座標は乱数です)。
学校で学んだように、線の勾配を数えています。
int deltaY = TargetY - StartY;
int deltaX = TargetX - StartX;
float gradient = (float)deltaY / (float)deltaX;
次に、バグを回転させる角度:
float angle = (float) (Math.atan(gradient) * 180 / PI);
次に、回転と移動の修飾子を次に示します。
registerEntityModifier(new RotationModifier(0.3f, 0, angle) {
@Override
protected void onModifierFinished(IEntity pItem) {
super.onModifierFinished(pItem);
registerEntityModifier(new MoveModifier(0.8f, StartX, TargetX, StartY, TargetY) {
@Override
protected void onModifierFinished(IEntity pItem) {
super.onModifierFinished(pItem);
}
});
}
});
特定の勾配の線では、バグが 2 つの方向から来る可能性があるため、ソリューションはより複雑になり、2 つの方向を向く可能性があります。1/2 の勾配は 26.56 度を意味し、AndEngine 座標系では、バグがどちら側から来たかに応じて -26.56 または -206.56 度を意味することを知っています。