【问题标题】:A question about scrolling backgrounds in XNA关于 XNA 中滚动背景的问题
【发布时间】:2011-06-02 09:08:45
【问题描述】:

我正在为我的游戏制作滚动背景,但我对如何重复纹理感到有些困惑。到目前为止,我有它,因此背景类需要五个变量:两个浮点数(每个轴一个,都固定为 0.01 和 1.0),两个布尔值(查看它是否应该在任一轴上重复)和相机。它将纹理绘制到一个矩形上,矩形的位置随着相机位置乘以适当的浮点数而移动。

到目前为止的运动代码只是:

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

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

【问题讨论】:

  • 如果您没有从 stackover 流程​​中得到答案,我建议您看看 GameDeb StackExchange:gamedev.stackexchange.com

标签: xna scroll textures


【解决方案1】:

我没有对此进行测试,但我很确定您应该能够使用同时接受源矩形和目标矩形的overload of SpriteBatch.Draw。将目标矩形设置为覆盖屏幕。将源矩形设置为背景位置的负值(或类似的东西;它将超出纹理的边缘)。

您可能必须将精灵批次的SamplerState 设置为包装的sampler states 之一(例如LinearWrap)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多