Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
3D SplitScreen XNA-如何使用2个摄像头在同一视口中绘制2名玩家_3d_Xna_Camera_Models_Viewport - Fatal编程技术网

3D SplitScreen XNA-如何使用2个摄像头在同一视口中绘制2名玩家

3D SplitScreen XNA-如何使用2个摄像头在同一视口中绘制2名玩家,3d,xna,camera,models,viewport,3d,Xna,Camera,Models,Viewport,我是这个网站的新手,但是我尽力在网上寻找我问题的答案。。但我仍然找不到任何真正有用的东西 事情是这样的,我正在尝试一个简单的3D汽车游戏,我才刚刚开始。我目前正在使用splitscreen,遇到的问题是: 实际上,我可以看到两个“飞船”(一个在右视口,一个在左视口),但我似乎找不到一种方法在两个视口中绘制两个飞船,而是使用它们自己的相机。是的,我还创建了两个不同的chase摄影机,一个用于左视口,一个用于右视口 有人能以任何方式指导我吗?若你们需要任何代码来帮助你们回答,我会粘贴它并解释(唯一的

我是这个网站的新手,但是我尽力在网上寻找我问题的答案。。但我仍然找不到任何真正有用的东西

事情是这样的,我正在尝试一个简单的3D汽车游戏,我才刚刚开始。我目前正在使用splitscreen,遇到的问题是:

实际上,我可以看到两个“飞船”(一个在右视口,一个在左视口),但我似乎找不到一种方法在两个视口中绘制两个飞船,而是使用它们自己的相机。是的,我还创建了两个不同的chase摄影机,一个用于左视口,一个用于右视口

有人能以任何方式指导我吗?若你们需要任何代码来帮助你们回答,我会粘贴它并解释(唯一的问题是它是用法语写的)

非常感谢你

讨论中更新的答案:


听起来你需要改变你的构造器,不仅要接受“目标”车,还要接受赛道上的所有其他车。e、 g.视图(目标车、分配车)

我建议:创建一种新方法,采用摄影机位置/平移,并从该角度渲染所有汽车。然后,在“绘制”方法中,使用与当前视口关联的摄影机调用新方法

原始答复:

我很难准确地理解您所追求的效果,但假设这只是分割屏幕想法的一个变体,这里有一种解决问题的方法:

在游戏初始化中:

  • 创建两个渲染目标-每个玩家的屏幕一个
  • 在绘制方法中:

  • 将图形目标设置为玩家的渲染目标,从玩家的相机透视图渲染场景。。。然后对玩家二也做同样的事情

  • 将两个玩家的渲染目标绘制到屏幕上


  • 如果您不知道RenderTargets,那么下面的Microsoft示例可能会有所帮助:

    对不起,我认为我没有正确解释我的观点。我的意思是我有两个视口。一个在左边,一个在右边。接下来,我在右视口中有一艘船,它随Chase摄影机移动,在左视口中有一艘船也随Chase摄影机移动。我要找的是,能在右边的飞船相机里看到“左边”的飞船。但据我所知,视口就像是不同的世界,所以它们彼此看不见。问题是你的chase摄像头离汽车太近了。。。或者,当渲染每个视图时,只有一辆车出现(即使每个摄影机距离足够远,可以“看到”两辆车)?这是因为当我渲染每个视图时,只有一辆车出现,因为在我的绘制方法中,我绘制每艘船取决于它在其构造函数中接收到的视口!听起来你需要改变你的构造器,不仅要接受“目标”车,还要接受赛道上的所有其他车。e、 g.视图(targetCar,allOtherCars)这是一个好主意,但在我的绘制方法中,看起来像这样,我根据与之相关联的摄影机(也在构造器中接收)绘制模型。。但是对于“allOtherCars”,我是否也应该根据同一个摄像头绘制它们?(如果您需要解释代码,请不要犹豫)