XNA Получить значение сетки Y при значении X Ответить - PullRequest
0 голосов
/ 05 ноября 2011

У меня возникают проблемы при попытке получить загруженное значение сетки Y со значением X, чтобы выполнить очень ограниченную версию обнаружения.По сути, я собираюсь получить значение X камеры и определить, является ли значение Y моей сетки, например, 5.Если это так ... там есть стена.

Я загружаю свою модель следующим образом:

landscape = Content.Load ("landscape");

Я рисую модельс этим:

      foreach (ModelMesh mesh in landscape.Meshes)
        {
            if (mesh.Name != "Billboards")
            {
                foreach (BasicEffect effect in mesh.Effects)
                {
                    effect.View = view;
                    effect.Projection = projection;

                    effect.LightingEnabled = true;

                    effect.DirectionalLight0.Enabled = true;
                    effect.DirectionalLight0.Direction = lightDirection;
                    effect.DirectionalLight0.DiffuseColor = lightColor;

                    //if (flashEnabled == true)
                    //{
                        effect.DirectionalLight1.Enabled = flashEnabled;

                        effect.DirectionalLight1.Direction = cameraFront;
                        effect.DirectionalLight1.DiffuseColor = lightColor;
                        effect.DirectionalLight1.SpecularColor = colorFlashLight.ToVector3();
                    //}


                    effect.AmbientLightColor = ambientLightColor;

                    effect.FogEnabled = fogEnabled;
                    effect.FogColor = color.ToVector3();
                    effect.FogStart = 9.75f;
                    effect.FogEnd = 10.25f;
                }

                device.BlendState = BlendState.Opaque;
                device.DepthStencilState = DepthStencilState.Default;
                device.RasterizerState = RasterizerState.CullCounterClockwise;

                mesh.Draw();

}

Итак, в моих функциях обновления или ввода я запустил бы оценочную функцию, чтобы определить, больше ли LandscapeVertexY @ CameraX, чем значение 5.

Любая помощь?

1 Ответ

0 голосов
/ 05 ноября 2011

Если я правильно понимаю ваш вопрос, вы пытаетесь получить визуализированное положение вершины с помощью указанной камеры.

В этом случае вам необходимо вручную спроецировать положение вершины в ваше координатное пространство.с помощью умножения матриц.Это можно сделать, умножив положение с вашей матрицей модель-вид-проекция.(Это можно сделать с помощью матрицы и векторов XNA).

...