変換(メッシュ)についてはわかりません。最初に私のコード(Render()関数にあります)を見てください:
foreach (GeometricObject obj in this.objects)
{
if (obj != this.activeObject)
{
obj.Mesh = MeshUtils.ChangeMeshColor(obj.Mesh, Color.Yellow, device);
}
else
{
obj.Mesh = MeshUtils.ChangeMeshColor(obj.Mesh, Color.Green, device);
obj.GeometryMatrix.Translate(this.move);
}
device.Transform.World = obj.GeometryMatrix;
obj.Mesh.DrawSubset(0);
}
説明: いくつかの黄色の gometriObject (メッシュ) と 1 つの緑色のアクティブ オブジェクトがあります (キーボード 1 から 4 で切り替えることができます)。「移動」は、キーボードですべての矢印が選択された後に変更するベクトルです (したがって、アクティブなオブジェクトを移動できます)。
しかし、私が望んでいたように機能していません。...オブジェクトの 1 つの位置を変更すると...別のオブジェクトに切り替えた後 (activeObject を変更)、画面に別のビューが表示されます (すべての切り替え後 ... すべてのオブジェクトが同じ場所に表示されます)。画面;/)。いつも同じ景色ではないのはなぜですか?同じビューが設定されているので、そうすべきだと思います:
device.Transform.View = Matrix.LookAtLH(new Vector3(0.0f, 2.0f, -25.0f), // Camera position
new Vector3(0.0f, 0.0f, 0.0f), // Look-at point
new Vector3(0.0f, 1.0f, 0.0f)); // Up vector
それで、私の問題は何ですか?何か案は:)?あはは...問題はそのchangeingMeshColor関数とは関係ありません...私はチェックしました。