C# 为什么graphicsDevice.viewport(x,y,z,w)使用x表示x和y表示?
我正在尝试为我的XNA游戏创建一个拆分屏幕。我有一个camera类,我使用它作为相机,当需要绘制时,我调用包含以下代码的函数。cameraViewport是一个矢量4,所有值都在0,1之间。 我用的第一台相机C# 为什么graphicsDevice.viewport(x,y,z,w)使用x表示x和y表示?,c#,xna,camera,C#,Xna,Camera,我正在尝试为我的XNA游戏创建一个拆分屏幕。我有一个camera类,我使用它作为相机,当需要绘制时,我调用包含以下代码的函数。cameraViewport是一个矢量4,所有值都在0,1之间。 我用的第一台相机 camera1.viewport = new vector4(0,0,1,.5f); // this works perfect 对于我正在使用的第二台相机 camera2.viewport = new vector4(0,.5f,1,.5f); // this is drawling
camera1.viewport = new vector4(0,0,1,.5f); // this works perfect
对于我正在使用的第二台相机
camera2.viewport = new vector4(0,.5f,1,.5f); // this is drawling the same view as camera1
但是当我为第二个摄像机做这个的时候
camera2.viewport = new vector3(.5f,0,.5f,.5f);
结果是,好像我把它分成了4条路,它在底部的右边,但它应该在右上角。看起来它根本不使用y值,只使用x值。为什么呢
int x = (int)(defaultViewport.Width * CameraViewport.X);
int y = (int)(defaultViewport.Height * CameraViewport.Y);
int w = (int)(defaultViewport.Width * CameraViewport.Z);
int h = (int)(defaultViewport.Height * CameraViewport.W);
Viewport viewport = new Viewport(x, y, w, h);
graphics.Viewport = viewport;
this.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), viewport.AspectRatio, .1f, 5000);
实际上这是我的错,错误在于我如何设置视口
Vector4 cameraViewport;
public Vecor4 viewport
{
Vector4 newviewport = value;
cameraViewport = new Vector4(mathhelper.clamp(newviewport.x,0,1),... //here was my problem i was setting the y value the same as the x value i didnt even think to check here sorry for this kinda point less question unless someone else has the same problem.
}
说我还有两天时间,所以我没有