2012-11-13 305 views
0

我想爲我的XNA遊戲創建一個splitScreen。我有一個相機類,我用作相機,當它來繪製我打電話包含下面的代碼的函數。 cameraViewport是一個vector4,所有值都在0,1之間。 的第一臺相機,我使用爲什麼graphicsDevice.viewport(x,y,z,w)使用x作爲x和y?

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 

但是當我做這相機2

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); 

回答

0

其實這是我的不好,錯誤在於我如何設置視口。

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. 
} 
+0

接受此答案,然後顯示它已解決。 – neeKo

+0

說我有2天之前我可以多數民衆贊成爲什麼我havnt – Shredder2500

相關問題