タンクトラックはタンクのいずれかの側にある必要があり、タンクは360回転に面することができます。これを説明する写真は次のとおりです。
現時点では、タンクトラックは水平方向にオフセットしているだけです。タンクのコアに沿って垂直方向にオフセットしようとしています(機能していません)。
これが私がこれまでにしたことです:
private void tracksPosition()
{
_DegreeToRadien = Math.toRadians(_degrees);
_ObjectXCenter = (int) (_object_x + ((_itemAnimation.getWidth() / 2)) - _trackAnimationLeft.getWidth() / 2);
_ObjectYCenter = (int) (_object_y + ((_itemAnimation.getHeight() / 2)) - _trackAnimationLeft.getHeight() / 2);
//For left track
_xOffset = -1 * (_itemAnimation.getHeight() / 2);
_trackLeftPosition.set
(
(int)(((_xOffset) * Math.cos(_DegreeToRadien / 2)) + _ObjectXCenter),
(int)(((_xOffset) * Math.sin(_DegreeToRadien / 2)) + _ObjectYCenter)
);
Xオフセットで動作しますが、何らかの理由で、奇妙になることなくYオフセットを理解することはできません。
//-------答え----------//私がこれをどのように行ったか疑問に思っているすべての人にとって、ここに答えがあります:
//For left track
//Decide how far away the track is from the tank
_xOffset = _itemAnimation.getHeight() / 1.5;
//Decide where the track is horizontally to the tank (Ie front, back)
_DegreeToRadien = Math.toRadians(_degrees + 110);
//Set the point of the track, takes the centre of the tank and adds the current position, cos and sin basically divide (though multiplication) the current position according to the direction the tank is facing.
_trackLeftPosition.set
(
_ObjectXCenter + (int)(_xOffset * Math.cos(_DegreeToRadien))
,
_ObjectYCenter + (int)(_xOffset * Math.sin(_DegreeToRadien))
);