Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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
关于XNA中滚动背景的问题_Xna_Scroll_Textures - Fatal编程技术网

关于XNA中滚动背景的问题

关于XNA中滚动背景的问题,xna,scroll,textures,Xna,Scroll,Textures,我正在为我的游戏制作滚动背景,我有点困惑于如何重复纹理。到目前为止,我已经有了它,所以背景类需要五个变量:两个浮动(每个轴一个,都钳制为0.01和1.0)、两个布尔(看看它是否应该在任一轴上重复)和相机。它将纹理绘制为矩形,并且矩形的位置随着摄影机位置乘以适当的浮动而移动 到目前为止,移动代码仅为: source.X = (int)(camera.Pos.X * scrollX); source.Y = (int)(camera.Pos.Y * scrollY); 所以我想做的是,当一个或两个

我正在为我的游戏制作滚动背景,我有点困惑于如何重复纹理。到目前为止,我已经有了它,所以背景类需要五个变量:两个浮动(每个轴一个,都钳制为0.01和1.0)、两个布尔(看看它是否应该在任一轴上重复)和相机。它将纹理绘制为矩形,并且矩形的位置随着摄影机位置乘以适当的浮动而移动

到目前为止,移动代码仅为:

source.X = (int)(camera.Pos.X * scrollX);
source.Y = (int)(camera.Pos.Y * scrollY);

所以我想做的是,当一个或两个重复布尔值为真时,使纹理在适当的轴(或多个轴)上重复,但我不知道如何使用我当前的系统。我在想我可以添加三个或更多的矩形(我通常会把我的背景弄得很大),让它们都画出相同的纹理,然后根据相机的位置移动,但我不确定怎么做。有什么建议吗?

我还没有测试过这个,但我非常确定您应该能够使用同时包含源矩形和目标矩形的。设置目标矩形以覆盖屏幕。将源矩形设置为背景位置的反方向(或类似的,它将超出纹理的边缘)


您可能必须将sprite批处理的
采样器状态设置为其中一个包装(例如
LinearWrap
)。

如果您无法从stackover flow获得答案,我建议您查看GameDeb StackExchange: