2011-06-01 49 views
0

我正在爲我的遊戲開發滾動背景,而且我很難理解我應該如何重複紋理。到目前爲止,我已經知道背景類需要五個變量:兩個浮點數(每個軸一個,都固定爲0.01和1.0),兩個bools(查看是否應該在任一軸上重複)和相機。它將紋理繪製成矩形,矩形的位置隨相機位置乘以適當的浮點而移動。關於在XNA中滾動背景的問題

運動代碼迄今只是:

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

所以我想要做的是什麼讓這個在相應的軸紋理重複(或軸)當一個或兩個重複的bools是真實的,但我不知道如何用我目前的系統做到這一點。我想我可以添加三個或更多的矩形(我通常會讓我的背景很大),讓他們都繪製相同的紋理,並根據相機的位置移動,但我不確定如何做到這一點。有什麼建議麼?

+0

如果你沒有從stackover流得到答案,我建議你看看GameDeb StackExchange:http://gamedev.stackexchange.com/ – 2011-06-01 21:54:40

回答

2

我還沒有測試過這個,但我敢肯定你應該可以使用帶有源矩形和目標矩形的overload of SpriteBatch.Draw。設置您的目標矩形以覆蓋您的屏幕。將源矩形設置爲背景位置的否定(或類似的東西;它會超出紋理的邊緣)。

您可能必須將精靈批處理的SamplerState設置爲包裝的sampler states之一(例如LinearWrap)。