私はxnaで基本的なゲームをプログラミングしています。プレーヤーの右腕にオブジェクト(武器など)を取り付け始めました。キャラクターを左後ろまたは右後ろに動かすと、すべて右になります。しかし、回転させると、機器が正しく配置されません。行った回転に基づいて新しい位置を再計算する必要があることは十分に理解していますが、その方法がわかりません。これが私のコードと写真です千ありがとう
//Function that will draw the current item selection in the player's hand
private void draw_itemActionInUse(Model modelInUse)
{
int handIndex = skinningData.BoneIndices["Hand_Right"];
Matrix[] worldTransforms = animationPlayer.GetWorldTransforms();
Matrix rotationMatrixCalcul = Matrix.CreateRotationY(player.Rotation.Y);
//Here I calculate the new position of the item, but it does not work
Vector3 newPosition= Vector3.Transform(new Vector3(player.Position.X, player.Position.Y + 4, player.Position.Z ), rotationMatrixCalcul);
foreach (ModelMesh mesh in modelInUse.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.World =
worldTransforms[handIndex]
*
Matrix.CreateScale(2)
*
Matrix.CreateRotationY(player.Rotation.Y)
*
Matrix.CreateTranslation(newPosition);
effect.View = View_;
effect.Projection = Projection_;
effect.EnableDefaultLighting();
}
mesh.Draw();
}
}
図A:位置:x:0; y:0; z:0角度:90 図B:位置:x:2; y:4; z:0角度:90 図A:位置:x:1; y:0 ; z:1角度:35 図B:位置:この位置をどのように計算しますか? 角度:35