0

変換(メッシュ)についてはわかりません。最初に私のコード(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関数とは関係ありません...私はチェックしました。

4

1 に答える 1